<html lang="ko"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>var __ez=__ez||{};__ez.stms=Date.now();__ez.evt={};__ez.script={};__ez.ck=__ez.ck||{};__ez.template={};__ez.template.isOrig=false;__ez.queue=function(){var e=0,i=0,t=[],n=!1,o=[],r=[],s=!0,a=function(e,i,n,o,r,s,a){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:window,d=this;this.name=e,this.funcName=i,this.parameters=null===n?null:p(n)?n:[n],this.isBlock=o,this.blockedBy=r,this.deleteWhenComplete=s,this.isError=!1,this.isComplete=!1,this.isInitialized=!1,this.proceedIfError=a,this.fWindow=l,this.isTimeDelay=!1,this.process=function(){f("... func = "+e),d.isInitialized=!0,d.isComplete=!0,f("... func.apply: "+e);var i=d.funcName.split("."),n=null,o=this.fWindow||window;i.length>3||(n=3===i.length?o[i[0]][i[1]][i[2]]:2===i.length?o[i[0]][i[1]]:o[d.funcName]),null!=n&&n.apply(null,this.parameters),!0===d.deleteWhenComplete&&delete t[e],!0===d.isBlock&&(f("----- F'D: "+d.name),u())}},l=function(e,i,t,n,o,r,s){var a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:window,l=this;this.name=e,this.path=i,this.async=o,this.defer=r,this.isBlock=t,this.blockedBy=n,this.isInitialized=!1,this.isError=!1,this.isComplete=!1,this.proceedIfError=s,this.fWindow=a,this.isTimeDelay=!1,this.isPath=function(e){return"/"===e[0]&&"/"!==e[1]},this.getSrc=function(e){return void 0!==window.__ezScriptHost&&this.isPath(e)&&"banger.js"!==this.name?window.__ezScriptHost+e:e},this.process=function(){l.isInitialized=!0,f("... file = "+e);var i=this.fWindow?this.fWindow.document:document,t=i.createElement("script");t.src=this.getSrc(this.path),!0===o?t.async=!0:!0===r&&(t.defer=!0),t.onerror=function(){var e={url:window.location.href,name:l.name,path:l.path,user_agent:window.navigator.userAgent};"undefined"!=typeof _ezaq&&(e.pageview_id=_ezaq.page_view_id);var i=encodeURIComponent(JSON.stringify(e)),t=new XMLHttpRequest;t.open("GET","//g.ezoic.net/ezqlog?d="+i,!0),t.send(),f("----- ERR'D: "+l.name),l.isError=!0,!0===l.isBlock&&u()},t.onreadystatechange=t.onload=function(){var e=t.readyState;f("----- F'D: "+l.name),e&&!/loaded|complete/.test(e)||(l.isComplete=!0,!0===l.isBlock&&u())},i.getElementsByTagName("head")[0].appendChild(t)}},d=function(e,i){this.name=e,this.path="",this.async=!1,this.defer=!1,this.isBlock=!1,this.blockedBy=[],this.isInitialized=!0,this.isError=!1,this.isComplete=i,this.proceedIfError=!1,this.isTimeDelay=!1,this.process=function(){}};function c(e){!0!==h(e)&&0!=s&&e.process()}function h(e){if(!0===e.isTimeDelay&&!1===n)return f(e.name+" blocked = TIME DELAY!"),!0;if(p(e.blockedBy))for(var i=0;i<e.blockedBy.length;i++){var o=e.blockedBy[i];if(!1===t.hasOwnProperty(o))return f(e.name+" blocked = "+o),!0;if(!0===e.proceedIfError&&!0===t[o].isError)return!1;if(!1===t[o].isComplete)return f(e.name+" blocked = "+o),!0}return!1}function f(e){var i=window.location.href,t=new RegExp("[?&]ezq=([^&#]*)","i").exec(i);"1"===(t?t[1]:null)&&console.debug(e)}function u(){++e>200||(f("let's go"),m(o),m(r))}function m(e){for(var i in e)if(!1!==e.hasOwnProperty(i)){var t=e[i];!0===t.isComplete||h(t)||!0===t.isInitialized||!0===t.isError?!0===t.isError?f(t.name+": error"):!0===t.isComplete?f(t.name+": complete already"):!0===t.isInitialized&&f(t.name+": initialized already"):t.process()}}function p(e){return"[object Array]"==Object.prototype.toString.call(e)}return window.addEventListener("load",(function(){setTimeout((function(){n=!0,f("TDELAY -----"),u()}),5e3)}),!1),{addFile:function(e,i,n,s,a,d,h,f,u){var m=new l(e,i,n,s,a,d,h,u);!0===f?o[e]=m:r[e]=m,t[e]=m,c(m)},addDelayFile:function(e,i){var n=new l(e,i,!1,[],!1,!1,!0);n.isTimeDelay=!0,f(e+" ...  FILE! TDELAY"),r[e]=n,t[e]=n,c(n)},addFunc:function(e,n,s,l,d,h,f,u,m,p){!0===h&&(e=e+"_"+i++);var w=new a(e,n,s,l,d,f,u,p);!0===m?o[e]=w:r[e]=w,t[e]=w,c(w)},addDelayFunc:function(e,i,n){var o=new a(e,i,n,!1,[],!0,!0);o.isTimeDelay=!0,f(e+" ...  FUNCTION! TDELAY"),r[e]=o,t[e]=o,c(o)},items:t,processAll:u,setallowLoad:function(e){s=e},markLoaded:function(e){if(e&&0!==e.length){if(e in t){var i=t[e];!0===i.isComplete?f(i.name+" "+e+": error loaded duplicate"):(i.isComplete=!0,i.isInitialized=!0)}else t[e]=new d(e,!0);f("markLoaded dummyfile: "+t[e].name)}},logWhatsBlocked:function(){for(var e in t)!1!==t.hasOwnProperty(e)&&h(t[e])}}}();__ez.evt.add=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n()},__ez.evt.remove=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent("on"+t,n):delete e["on"+t]};__ez.script.add=function(e){var t=document.createElement("script");t.src=e,t.async=!0,t.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(t)};__ez.dot={};__ez.queue.addFile('/detroitchicago/boise.js', '/detroitchicago/boise.js?gcb=195-2&cb=2', true, [], true, false, true, false);__ez.queue.addFile('/parsonsmaize/abilene.js', '/parsonsmaize/abilene.js?gcb=195-2&cb=28', true, [], true, false, true, false);</script>
<script data-ezscrex="false" type="text/javascript" data-cfasync="false">window._ezaq = Object.assign({}, typeof window._ezaq !== "undefined" ? window._ezaq : {}, {"ad_cache_level":1,"domain_id":173770,"ezcache_level":2,"ezcache_skip_code":0,"has_bad_image":0,"has_bad_words":0,"is_sitespeed":0,"lt_cache_level":0,"page_view_id":"6d0ad329-4ebf-43d1-575b-801d369f49d8","response_size_orig":157565,"response_time_orig":4,"template_id":134,"url":"https://plantuml.com/ko/class-diagram","word_count":4619,"worst_bad_word_level":0});__ez.queue.markLoaded('ezaqBaseReady');</script>
<script type="text/javascript">(function(){function storageAvailable(type){var storage;try{storage=window[type];var x='__storage_test__';storage.setItem(x,x);storage.removeItem(x);return true;}
catch(e){return e instanceof DOMException&&(e.code===22||e.code===1014||e.name==='QuotaExceededError'||e.name==='NS_ERROR_DOM_QUOTA_REACHED')&&(storage&&storage.length!==0);}}
function remove_ama_config(){if(storageAvailable('localStorage')){localStorage.removeItem("google_ama_config");}}
remove_ama_config()})()</script>
<script type="text/javascript">var ezoicTestActive = true</script>
<script data-ezscrex="false" type="text/javascript" data-cfasync="false">window._ezaq = Object.assign({}, typeof window._ezaq !== "undefined" ? window._ezaq : {}, {"ab_test_id":"mod174-c","ad_cache_level":1,"ad_count_adjustment":0,"ad_lazyload_version":0,"ad_load_version":1,"ad_location_ids":"","adx_ad_count":0,"ai_placeholder_cache_level":1,"ai_placeholder_placement_cnt":-1,"bidder_method":1,"bidder_version":3,"city":"Krasnoyarsk","country":"RU","days_since_last_visit":-1,"display_ad_count":0,"domain_id":173770,"domain_test_group":20230802,"ds_adsize_opt_id":-1,"engaged_time_visit":0,"ezcache_level":2,"ezcache_skip_code":0,"form_factor_id":1,"framework_id":1,"has_bad_image":0,"has_bad_words":0,"iab_category":"","iab_category_0":"596","is_embed":false,"is_from_recommended_pages":false,"is_return_visitor":false,"is_sitespeed":0,"last_page_load":"","last_pageview_id":"","lt_cache_level":0,"max_ads":0,"metro_code":0,"optimization_version":1,"page_ad_positions":"","page_view_count":279,"page_view_id":"6d0ad329-4ebf-43d1-575b-801d369f49d8","position_selection_id":0,"postal_code":"660000","pv_event_count":0,"response_size_orig":157565,"response_time_orig":4,"serverid":"i-05081d731ed3876af","state":"KYA","sub_page_ad_positions":"","t_epoch":1697690909,"template_id":134,"time_on_site_visit":0,"url":"https://plantuml.com/ko/class-diagram","word_count":4619,"worst_bad_word_level":0});__ez.queue.markLoaded('ezaqReady');</script>
<script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>__ez.queue.addFile('/parsonsmaize/mulvane.js', '/parsonsmaize/mulvane.js?gcb=195-2&cb=5', true, ['/parsonsmaize/abilene.js'], true, false, true, false);__ez.queue.addFile('/parsonsmaize/olathe.js', '/parsonsmaize/olathe.js?gcb=195-2&cb=20', false, ['/parsonsmaize/abilene.js','/parsonsmaize/mulvane.js'], true, false, true, false);__ez.queue.addFile('/porpoiseant/et.js', '/porpoiseant/et.js?gcb=195-2&cb=2', false, [], true, false, true, false);!function(){var e;__ez.vep=(e=[],{Add:function(i,t){__ez.dot.isDefined(i)&&__ez.dot.isValid(t)&&e.push({type:"video",video_impression_id:i,domain_id:__ez.dot.getDID(),t_epoch:__ez.dot.getEpoch(0),data:__ez.dot.dataToStr(t)})},Fire:function(){if(void 0===document.visibilityState||"prerender"!==document.visibilityState){if(__ez.dot.isDefined(e)&&e.length>0)for(;e.length>0;){var i=5;i>e.length&&(i=e.length);var t=e.splice(0,i),o=__ez.dot.getURL("/detroitchicago/grapefruit.gif")+"?orig="+(!0===__ez.template.isOrig?1:0)+"&v="+btoa(JSON.stringify(t));__ez.dot.Fire(o)}e=[]}}})}();</script><script data-ezscrex='false' data-cfasync='false' data-pagespeed-no-defer>!function(){function e(i){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(i)}__ez.pel=function(){var i=[];function t(t,o,d,_,n,r,a,s){if(__ez.dot.isDefined(t)&&0!=__ez.dot.isAnyDefined(t.getSlotElementId,t.ElementId)){void 0===s&&(s=!1);var p=parseInt(__ez.dot.getTargeting(t,"ap")),f=__ez.dot.getSlotIID(t),u=__ez.dot.getAdUnit(t,s),z=parseInt(__ez.dot.getTargeting(t,"compid")),g=0,c=0,l=function(i){if("undefined"==typeof _ezim_d)return!1;var t=__ez.dot.getAdUnitPath(i).split("/").pop();if("object"===("undefined"==typeof _ezim_d?"undefined":e(_ezim_d))&&_ezim_d.hasOwnProperty(t))return _ezim_d[t];for(var o in _ezim_d)if(o.split("/").pop()===t)return _ezim_d[o];return!1}(t);"object"==e(l)&&(void 0!==l.creative_id&&(c=l.creative_id),void 0!==l.line_item_id&&(g=l.line_item_id)),__ez.dot.isDefined(f,u)&&__ez.dot.isValid(o)&&("0"===f&&!0!==s||""===u||i.push({type:"impression",impression_id:f,domain_id:__ez.dot.getDID(),unit:u,t_epoch:__ez.dot.getEpoch(0),revenue:d,est_revenue:_,ad_position:p,ad_size:"",bid_floor_filled:n,bid_floor_prev:r,stat_source_id:a,country_code:__ez.dot.getCC(),pageview_id:__ez.dot.getPageviewId(),comp_id:z,line_item_id:g,creative_id:c,data:__ez.dot.dataToStr(o),is_orig:s||__ez.template.isOrig}))}}function o(){void 0!==document.visibilityState&&"prerender"===document.visibilityState||(__ez.dot.isDefined(i)&&i.length>0&&[i.filter((function(e){return e.is_orig})),i.filter((function(e){return!e.is_orig}))].forEach((function(e){for(;e.length>0;){var i=e[0].is_orig||!1,t=5;t>e.length&&(t=e.length);var o=e.splice(0,t),d=__ez.dot.getURL("/porpoiseant/army.gif")+"?orig="+(!0===i?1:0)+"&sts="+btoa(JSON.stringify(o));(void 0!==window.isAmp&&isAmp||void 0!==window.ezWp&&ezWp)&&void 0!==window._ezaq&&_ezaq.hasOwnProperty("domain_id")&&(d+="&visit_uuid="+_ezaq.visit_uuid),__ez.dot.Fire(d)}})),i=[])}return{Add:t,AddAndFire:function(e,i){t(e,i,0,0,0,0,0),o()},AddAndFireOrig:function(e,i){t(e,i,0,0,0,0,0,!0),o()},AddById:function(e,t,o,d){var _=e.split("/");if(__ez.dot.isDefined(e)&&3===_.length&&__ez.dot.isValid(t)){var n=_[0],r={type:"impression",impression_id:_[2],domain_id:__ez.dot.getDID(),unit:n,t_epoch:__ez.dot.getEpoch(0),pageview_id:__ez.dot.getPageviewId(),data:__ez.dot.dataToStr(t),is_orig:o||__ez.template.isOrig};void 0!==d&&(r.revenue=d),i.push(r)}},Fire:o,GetPixels:function(){return i}}}()}();__ez.queue.addFile('/detroitchicago/raleigh.js', '/detroitchicago/raleigh.js?gcb=195-2&cb=6', false, ['/parsonsmaize/abilene.js'], true, false, true, false);__ez.queue.addFile('/detroitchicago/vista.js', '/detroitchicago/vista.js?gcb=195-2&cb=5', false, ['/parsonsmaize/abilene.js'], true, false, true, false);__ez.queue.addFile('/detroitchicago/tampa.js', '/detroitchicago/tampa.js?gcb=195-2&cb=5', false, ['/parsonsmaize/abilene.js'], true, false, true, false);</script><base href=""/><meta name="flattr:id" content="1ew3x0"/><script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "url": "https://plantuml.com",
  "name": "PlantUML",
  "sameAs" : ["https://twitter.com/plantuml","https://en.wikipedia.org/wiki/PlantUML","https://www.wikidata.org/wiki/Q18346546"],
  "logo": "https://cdn-0.plantuml.com/logo3.png",
  "contactPoint": [{
    "@type": "ContactPoint",
    "email": "plantuml@gmail.com",
    "url": "https://plantuml.com",
    "contactType": "customer service"
  }]
}
</script><script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "item": {
      "@id": "https://plantuml.com",
      "name": "Home"
    }
  },{
    "@type": "ListItem",
    "position": 2,
    "item": {
      "@id": "https://plantuml.com/sitemap-language-specification",
      "name": "Language specification"
    }
  },{
    "@type": "ListItem",
    "position": 3,
    "item": {
      "@id": "https://plantuml.com/class-diagram",
      "name": "Class Diagram"
  }
  }]
}
</script><link rel="canonical" href="class-diagram.html"/><link rel="alternate" hreflang="x-default" href="../class-diagram.html"/><link rel="alternate" hreflang="de" href="../de/class-diagram.html"/><link rel="alternate" hreflang="en" href="../class-diagram.html"/><link rel="alternate" hreflang="es" href="../es/class-diagram.html"/><link rel="alternate" hreflang="fr" href="../fr/class-diagram.html"/><link rel="alternate" hreflang="ja" href="../ja/class-diagram.html"/><link rel="alternate" hreflang="ru" href="../ru/class-diagram.html"/><link rel="alternate" hreflang="ko" href="class-diagram.html"/><link rel="alternate" hreflang="zh" href="../zh/class-diagram.html"/><link rel="shortcut icon" href="../favicon.ico"/><link rel="preload" as="image" href="../svgrepo-house.svg"/><link rel="preload" as="image" href="../svgrepo-text-news.svg"/><link rel="preload" as="image" href="../svgrepo-rocket-3-start.svg"/><link rel="preload" as="image" href="../svgrepo-server.svg"/><link rel="preload" as="image" href="../svgrepo-play.svg"/><link rel="preload" as="image" href="../svgrepo-forum.svg"/><link rel="preload" as="image" href="../svgrepo-add-to-online-cart.svg"/><link rel="preload" as="image" href="../svgrepo-forum-message.svg"/><link rel="preload" as="image" href="../svgrepo-palette-fill.svg"/><link rel="preload" as="image" href="../svgrepo-cpu.svg"/><link rel="preload" as="image" href="../svgrepo-books-library.svg"/><link rel="preload" as="image" href="../svgrepo-signpost-fill.svg"/><link rel="preload" as="image" href="../svgrepo-library.svg"/><link rel="preload" as="image" href="../flags21.png"/><link rel="preload" as="image" href="../svgrepo-uxwing-light-mode-toggle.svg"/><title>클래스 다이어그램 구문 및 기능</title><meta name="description" content="PlantUML 클래스 다이어그램 구문 : 당신은 정의 할 수 있습니다 인터페이스, 회원, 관계, 패키지, 제네릭, 음 ... 변경 글꼴과 색상도 가능하다."/><meta property="og:type" content="article"/><meta property="og:title" content="클래스 다이어그램 구문 및 기능"/><meta property="og:description" content="PlantUML 클래스 다이어그램 구문 : 당신은 정의 할 수 있습니다 인터페이스, 회원, 관계, 패키지, 제네릭, 음 ... 변경 글꼴과 색상도 가능하다."/><meta property="og:url" content="https://plantuml.com/ko/class-diagram"/><meta property="og:site_name" content="PlantUML.com"/><meta name="twitter:image" content="https://plantuml.com/og-class-diagram"/><meta property="og:locale" content="ko"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="클래스 다이어그램 구문 및 기능"/><meta name="twitter:description" content="PlantUML 클래스 다이어그램 구문 : 당신은 정의 할 수 있습니다 인터페이스, 회원, 관계, 패키지, 제네릭, 음 ... 변경 글꼴과 색상도 가능하다."/><meta name="twitter:site" content="@PlantUML"/><meta name="twitter:creator" content="@PlantUML"/><style>li{margin:2px}#external li{margin:13px}.pezoic{max-width:970px}@media screen and (max-width:1600px){.pezoic{max-width:768px}}.coptable{max-width:90%}.mytab{display:inline-block;border-radius:3px;border:1px solid #e1e4e8}.mytab:hover{border:1px dashed #0366d6;cursor:pointer;color:#0366d6;background:#f6f8fa}.cop{margin:25px 10px 0 10px}.cop:hover{cursor:pointer;filter:invert(30%) sepia(75%) saturate(4001%) hue-rotate(201deg) brightness(88%) contrast(98%)}.cop2{margin:25px 10px 0 10px}.cop2:hover{cursor:pointer}.msg{position:absolute;color:#396;background-color:#FFF;margin-top:55px;display:none;border-radius:3px;border:1px solid #4dff00}.mycell0{float:left;vertical-align:top;padding:10px}.mycell0 code:hover{cursor:default;color:#000}.mycell{float:right;vertical-align:top;padding:10px;max-width:55vw;overflow-x:auto}.mycell0 pre{max-width:55vw;overflow-x:auto}.cod{background:#edeff3;padding:2px 5px;border-radius:3px}.colo{display:inline-block;background:#edeff3;padding:7px 12px;border-radius:3px}.tag,.tagg,.tago,.tagr{text-rendering:optimizeLegibility;display:inline-block;padding:3px 5px 2px 4px;text-decoration:none;white-space:nowrap;border:1px solid #999;text-transform:uppercase;text-align:center;border-radius:3px;font-size:11px;font-weight:bold;line-height:90%}.tag{background-color:#eee}.tagg{background-color:#98fb98}.tago{background-color:#fafa00}.tagr{background-color:#ff4500}a{text-decoration:none;color:#0366d6}a:hover{text-decoration:underline}.menu1{border:0;font-family:Helvetica,sans-serif;font-size:14px;padding:0;margin:0;white-space:nowrap;overflow:hidden;vertical-align:middle;line-height:30px}.menu1 a{text-align:center;padding:10px 7px 10px 7px;text-decoration:none;color:#637282}.menu1 a:hover{color:#0366d6}#menu0{top:0;z-index:4;margin:0 0 0 10px;padding:0}@media screen and (max-width:1200px){#menu0{visibility:hidden}}.mhov img{margin:0 5px 0 0;padding:0}.mhov:hover{filter:invert(25%) sepia(97%) saturate(2026%) hue-rotate(201deg) brightness(91%) contrast(98%)}#menuside2{border:0;font-family:Helvetica,sans-serif;font-size:14px;padding:20px 0 4px 0;margin:0}#menuside2 span{vertical-align:top}#menuside2 li{list-style:none;position:relative;padding:0;margin:10px 20px 10px 10px;border:0}#menuside2 li a{display:inline-block;text-decoration:none;color:#637282;width:100%}#BC{z-index:0;padding-top:5px;top:35px}.breadcrumb{z-index:1;font-family:Helvetica,sans-serif;font-size:14px;text-align:center;display:inline-block;overflow:hidden;border-radius:5px}.breadcrumb a{text-decoration:none;outline:0;display:block;float:left;font-size:12px;line-height:24px;color:#373f49;padding:0 10px 0 35px;background:#f0f1f1;background:linear-gradient(#f0f1f1,#c6d2d2);position:relative}.breadcrumb a:first-child{padding-left:21px;border-radius:5px 0 0 5px}.breadcrumb a:first-child:before{left:14px}.breadcrumb a:last-child{visibility:hidden}.breadcrumb a.active,.breadcrumb a:hover{color:#0366d6;background:#c6d2d2;background:linear-gradient(#e3e4e4,#b8c7c7)}.breadcrumb a.active:after,.breadcrumb a:hover:after{background:#c6d2d2;background:linear-gradient(135deg,#e3e4e4,#b8c7c7)}.breadcrumb a:after{content:'';position:absolute;top:0;right:-12px;width:24px;height:24px;transform:scale(0.707) rotate(45deg);z-index:1;background:#f0f1f1;background:linear-gradient(135deg,#f0f1f1,#c6d2d2);box-shadow:2px -2px 0 2px rgba(0,0,0,0.1),3px -3px 0 2px rgba(255,255,255,0.1);border-radius:0 5px 0 50px}.breadcrumb a:last-child:after{content:none;visibility:hidden}.lga,.lga a,.lgi,.lgi a{font-family:Helvetica,sans-serif;font-size:13px;text-align:center;color:#fff;padding:0 5px;margin:0}.lga,.lga a{background-color:#008}.lgi,.lgi a{background-color:#888}.lga:hover,.lga:hover a{text-decoration:none;color:#BBB}.lgi:hover,.lgi:hover a{text-decoration:none;color:#CCC}</style><style>.backtop{margin:0 10px}.backtop:hover{cursor:pointer;filter:invert(30%) sepia(75%) saturate(4001%) hue-rotate(201deg) brightness(88%) contrast(98%)}</style><style>.dropbtn{padding:0;border:0;background:0}.dropdown{position:relative;display:inline-block;margin:0 10px}.dropdown-content{display:none;position:absolute;background-color:#f1f1f1;min-width:160px;box-shadow:0 8px 16px 0 rgba(0,0,0,0.2);z-index:1}.dropdown-content img{vertical-align:middle;margin:0 8px 0 1px}.dropdown-content a{font-size:small;font-weight:normal;color:black;padding:5px 10px;text-decoration:none;display:block}.dropdown-content a:hover{background-color:#ddd;color:#0366d6}.dropdown:hover .dropdown-content{display:block}.dropdown:hover .dropbtn{background-color:#3e8e41}</style><style>#flex1{margin:0;padding:0;display:flex;flex-direction:row;width:378px;height:100%}#lll{flex-grow:1;flex-shrink:1;max-width:162px;overflow:hidden}#mmm{flex-grow:0;flex-shrink:0;background:#edeff3;width:210px;min-width:210px;max-width:210px;flex-grow:0;flex-shrink:0;border-left:1px solid #d4d8de}#qqq{flex-grow:0;flex-shrink:0;width:4px;min-width:4px;max-width:4px;flex-grow:0;flex-shrink:0}#rrr{flex-grow:1;flex-shrink:1;max-width:162px;overflow:hidden}.cde{display:flex;flex-direction:column;justify-content:space-between;height:100%}.cd{display:flex;flex-direction:column;justify-content:space-start;height:100%}.aaa{height:30px;min-height:30px;max-height:30px;flex-grow:0;flex-shrink:0;background:#edeff3;border-bottom:1px solid #d4d8de}.bbb,.bbborder{flex-grow:1;flex-shrink:0}.bbborder{border-left:1px solid #d4d8de}#header{z-index:10;position:fixed;left:378px;right:0;height:30px;top:0;background:#edeff3;border-bottom:1px solid #d4d8de}#header2{z-index:7;position:fixed;left:378px;right:0;height:10px;top:30px;background:#fefefe}#left0{top:0;position:fixed;left:0;margin:0;bottom:0;width:378px;padding:0;z-index:2}#root{padding:0;margin:40px 0 0 388px;background:#fefefe}body{margin:auto;overflow-x:hidden;background:#fefefe}@media screen and (max-width:1190px){#flex1,#left0{width:215px}#root{margin:40px 0 0 224px}#header,#header2{left:215px}#left0{left:0}#lll,#rrr{width:0;visibility:hidden;flex-grow:0;flex-shrink:0}}@media screen and (max-width:1010px){#root{margin:0 0 0 216px}#header,#header2{display:none}#lll,#qqq{width:0;visibility:hidden;flex-grow:0;flex-shrink:0}#mmm{border-right:1px solid #d4d8de}}@media screen and (min-width:1700px){#header,#header2{left:518px}#left0,#flex1{width:518px}#root{margin-left:528px}#lll,#rrr{max-width:302px}}</style><script>window.pushMST_config={vapidPK:"BBodn2vLFoDO5AdCfmOOzNmcUsn52kTA6JNZNYVFymzEdWHonz_bkUcsaTkPXHvNGRkRUSAxMbup-H0l2sb1h_Q",enableOverlay:true,swPath:"/sw.js",i18n:{}};var pushmasterTag=document.createElement("script");pushmasterTag.src="https://cdn.pushmaster-cdn.xyz/scripts/publishers/629f5e297baecc00098a271b/SDK.js";pushmasterTag.setAttribute("defer","");var firstScriptTag=document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(pushmasterTag,firstScriptTag);</script><script async="" src="https://www.googletagmanager.com/gtag/js?id=G-TKZNNQT9CZ"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date());gtag("config","G-TKZNNQT9CZ");</script><script>var llg="ko";var az=0;var amdark=0;function ljs(b){if(az){return false}var a=document.createElement("script");a.type="text/javascript";a.src="/btn-"+b+".js";document.body.innerHTML="<i style='position:absolute;top:30%;width:100%;'><center>Loading in progress...";document.body.appendChild(a)}function ctc(c){document.getElementById("img"+c).classList.remove("cop");document.getElementById("img"+c).classList.add("cop2");document.getElementById("pre"+c).style.backgroundColor="#4dff00";document.getElementById("msg"+c).style.display="inline";setTimeout(function(){document.getElementById("img"+c).classList.remove("cop2");document.getElementById("img"+c).classList.add("cop");document.getElementById("pre"+c).style.backgroundColor="";document.getElementById("msg"+c).style.display="none"},800);text=document.getElementById("pre"+c).innerText;if(window.clipboardData&&window.clipboardData.setData){return window.clipboardData.setData("Text",text)}else{if(document.queryCommandSupported&&document.queryCommandSupported("copy")){var a=document.createElement("textarea");a.textContent=text;a.style.position="fixed";document.body.appendChild(a);a.select();try{return document.execCommand("copy")}catch(b){return false}finally{document.body.removeChild(a)}}}};</script><script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script type='text/javascript'>
var ezoTemplate = 'pub_site';
var ezouid = '1';
var ezoFormfactor = '1';
</script><script data-ezscrex="false" type='text/javascript'>
var soc_app_id = '0';
var did = 173770;
var ezdomain = 'plantuml.com';
var ezoicSearchable = 1;
</script>
<script data-ezscrex='false' data-pagespeed-no-defer data-cfasync='false'>
function create_ezolpl() {
	var d = new Date();
	d.setTime(d.getTime() + (365*24*60*60*1000));
	var expires = "expires="+d.toUTCString();
	__ez.ck.setByCat("ezux_lpl_173770=" + new Date().getTime() + "|" + _ezaq.page_view_id + "|" + _ezaq.is_return_visitor + "; " + expires, 3);
}
function attach_ezolpl() {
	if (document.readyState === "complete") {
		create_ezolpl();
		return;
	}
	window.addEventListener("load", create_ezolpl);
}

__ez.queue.addFunc("attach_ezolpl", "attach_ezolpl", null, false, ['/detroitchicago/boise.js'], true, false, false, false);
</script></head><body><div id="left0"><div id="flex1"><div id="lll"><div class="cde"><div></div><div><span id="ezoic-pub-ad-placeholder-131"></span><!-- ezoic_pub_ad_placeholder-131-sidebar-120x600-131-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-131-sidebar-160x600-131-nonexxxnonexxxxxxezmaxscaleval100 --></div><div></div></div></div><div id="mmm"><div class="cde"><div><div><span id="ezoic-pub-ad-placeholder-105"></span><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-120x240-105-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-125x125-105-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-180x150-105-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-105-sidebar_middle-200x200-105-nonexxxnonexxxxxxezmaxscaleval100 --></div><ul id="menuside2"><li><a href="index.html" class="mhov"><img src="../svgrepo-house.svg" width="16" height="16"/><span>홈</span></a></li><li><a href="news.html" class="mhov"><img src="../svgrepo-text-news.svg" width="16" height="16"/><span>새소식</span></a></li><li><a href="starting.html" class="mhov"><img src="../svgrepo-rocket-3-start.svg" width="16" height="16"/><span>시작하기</span></a></li><li><a href="https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000" class="mhov"><img src="../svgrepo-server.svg" width="16" height="16"/><span>Online Server</span></a></li><li><a href="running.html" class="mhov"><img src="../svgrepo-play.svg" width="16" height="16"/><span>사용하기</span></a></li><li><a href="faq.html" class="mhov"><img src="../svgrepo-forum.svg" width="16" height="16"/><span>F.A.Q.</span></a></li><li><a href="download.html" class="mhov"><img src="../svgrepo-add-to-online-cart.svg" width="16" height="16"/><span>다운로드</span></a></li><li><a href="../qa.html" class="mhov"><img src="../svgrepo-forum-message.svg" width="16" height="16"/><span>포럼</span></a></li><li><a href="theme.html" class="mhov"><img src="../svgrepo-palette-fill.svg" width="16" height="16"/><span>Theme</span></a></li><li><a href="preprocessing.html" class="mhov"><img src="../svgrepo-cpu.svg" width="16" height="16"/><span>전처리</span></a></li><li><a href="stdlib.html" class="mhov"><img src="../svgrepo-books-library.svg" width="16" height="16"/><span>표준 라이브러리</span></a></li><li><a href="https://crashedmind.github.io/PlantUMLHitchhikersGuide" class="mhov"><img src="../svgrepo-signpost-fill.svg" width="16" height="16"/><span>Hitchhiker&#39;s Guide</span></a></li><li><a href="guide.html" class="mhov"><img src="../svgrepo-library.svg" width="16" height="16"/><span>PDF 가이드</span></a></li></ul><div><span id="ezoic-pub-ad-placeholder-108"></span><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-120x240-108-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-125x125-108-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-180x150-108-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-108-sidebar_middle-200x200-108-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><div></div><div style="margin-bottom:35px;"><span id="ezoic-pub-ad-placeholder-186"></span><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-120x240-186-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-125x125-186-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-180x150-186-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-186-sidebar_middle-200x200-186-nonexxxnonexxxxxxezmaxscaleval100 --></div></div></div><div id="qqq"><div class="cd"><div class="aaa"></div><div class="bbborder"></div></div></div><div id="rrr"><div class="cd"><div class="aaa"></div><div style="height:5px;"></div><div class="bbb"><div class="cde"><div></div><div><span id="ezoic-pub-ad-placeholder-175"></span><!-- ezoic_pub_ad_placeholder-175-sidebar-120x600-175-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-175-sidebar-160x600-175-nonexxxnonexxxxxxezmaxscaleval100 --></div><div></div></div></div></div></div></div></div><style>#contmenu{display:flex;height:30px;width:100%;margin:0;padding:0}#contmenua{height:30px;padding-right:25px}#contmenub{z-index:15;display:inline-block;flex-grow:1;flex-shrink:1;height:30px;background-color:#edeff3}#magic{white-space:nowrap;overflow:hidden;z-index:14;position:fixed;top:0;right:50px;height:30px;width:30px}#magic2{white-space:nowrap;overflow:hidden;z-index:16;position:fixed;top:0;right:0;height:30px;width:50px;background-color:#edeff3}#magic2 img{margin:5px 0 0 5px;filter:invert(44%) sepia(27%) saturate(310%) hue-rotate(170deg) brightness(92%) contrast(83%)}#magic2:hover img{filter:invert(25%) sepia(97%) saturate(2026%) hue-rotate(201deg) brightness(91%) contrast(98%)}#magic:hover #svgrepoleft{filter:invert(22%) sepia(53%) saturate(4563%) hue-rotate(202deg) brightness(95%) contrast(98%)}#magic:hover{width:100%;height:31px}#aze{height:30px;display:flex;flex-direction:row-reverse}#aze1{height:30px;background-color:#edeff3}#aze2{height:30px;background-color:#edeff3;padding-left:10px;border-left:1px solid #d4d8de;border-bottom:1px solid #d4d8de}#aze1 img{filter:invert(46%) sepia(6%) saturate(1254%) hue-rotate(171deg) brightness(94%) contrast(92%)}#aze3{width:3px;height:30px;background-color:#edeff3}</style><div id="header"><div id="contmenu"><div id="contmenua"><div class="menu1"><a href="sequence-diagram.html">시퀀스</a><a href="use-case-diagram.html">유스케이스</a><a href="class-diagram.html">클래스</a><a href="activity-diagram-beta.html">액티비티</a><a href="component-diagram.html">컴포넌트</a><a href="state-diagram.html">상태</a><a href="object-diagram.html">객체</a><a href="deployment-diagram.html">배치</a><a href="timing-diagram.html">타이밍</a><a href="nwdiag.html">Network</a><a href="salt.html">Wireframe</a><a href="archimate-diagram.html">Archimate</a><a href="gantt-diagram.html">Gantt</a><a href="mindmap-diagram.html">MindMap</a><a href="wbs-diagram.html">WBS</a><a href="json.html">JSON</a><a href="yaml.html">YAML</a></div></div><div id="contmenub"></div></div><div id="magic"><div id="aze"><div id="aze1"><img id="svgrepoleft" width="30" height="30" src="../svgrepo-left.svg"/></div><div id="aze2"><div class="menu1"><a href="sequence-diagram.html">시퀀스</a><a href="use-case-diagram.html">유스케이스</a><a href="class-diagram.html">클래스</a><a href="activity-diagram-beta.html">액티비티</a><a href="component-diagram.html">컴포넌트</a><a href="state-diagram.html">상태</a><a href="object-diagram.html">객체</a><a href="deployment-diagram.html">배치</a><a href="timing-diagram.html">타이밍</a><a href="nwdiag.html">Network</a><a href="salt.html">Wireframe</a><a href="archimate-diagram.html">Archimate</a><a href="gantt-diagram.html">Gantt</a><a href="mindmap-diagram.html">MindMap</a><a href="wbs-diagram.html">WBS</a><a href="json.html">JSON</a><a href="yaml.html">YAML</a></div></div><div id="aze3"></div></div></div><div id="magic2"><a href="../ko-dark/class-diagram.html"><img src="../svgrepo-uxwing-light-mode-toggle.svg" height="20"/></a></div></div><div id="header2"></div><div id="root"><style>#haut1{margin:50px 0 20px;padding:0;min-height:80px}#donate{padding-top:5px;min-height:30px}</style><div id="haut1"><div style="float:left;"><div class="breadcrumb"><a href="sitemap.html">PlantUML</a><a href="sitemap-language-specification.html">Language specification</a><a href="class-diagram.html">Class Diagram</a><a href="class-diagram.html#"></a></div><div id="donate">   <a href="https://discord.gg/sXhzexAQGh" style="text-decoration: none;"><img src="https://img.shields.io/discord/1083727021328306236?color=5865F2&amp;logo=discord&amp;logoColor=white" alt="Discord server"/></a>   <a href="https://github.com/sponsors/plantuml/" style="text-decoration: none;"><img src="https://img.shields.io/github/sponsors/plantuml?logo=github"/></a>   <a href="https://www.patreon.com/bePatron?patAmt=1&amp;u=527450&amp;rid=152970" style="text-decoration: none;"><img src="https://img.shields.io/badge/patreon-122-chocolate?logo=patreon"/></a>   <a href="../lp.html" style="text-decoration: none;"><img src="https://img.shields.io/liberapay/patrons/plantuml?color=gold&amp;logo=liberapay&amp;label=liberapay"/></a>   <a href="../en/paypal.html" style="text-decoration: none;"><img src="https://img.shields.io/badge/paypal-296-skyblue?logo=paypal&amp;logoColor=red"/></a></div></div><div style="float:right; margin:3px 0;"><style>#langlist{display:flex;justify-content:space-between;width:317px;height:16px;margin:3px 10px 3px 0}.sel2{border:2px solid #fefefe}.nosel2{border:2px solid #fefefe;filter:grayscale(100%) opacity(75%)}.sel2:hover,.nosel2:hover{cursor:pointer;border:2px solid #0366d6;border-spacing:0;filter:grayscale(0);filter:contrast(200%);filter:brightness(150%)}#flag1,#flag2,#flag3,#flag4,#flag5,#flag6,#flag7,#flag8{background:url(../flags21.png);background-repeat:no-repeat;background-clip:content-box;width:22px;height:16px}#flag2{background-position:-22px 0}#flag3{background-position:-44px 0}#flag4{background-position:-66px 0}#flag5{background-position:-88px 0}#flag6{background-position:-110px 0}#flag7{background-position:-132px 0}#flag8{background-position:-154px 0}</style><div id="langlist"><div id="flag1" onclick="location.href=&#39;/en/class-diagram&#39;" class="nosel2"></div><div id="flag2" onclick="location.href=&#39;/de/class-diagram&#39;" class="nosel2"></div><div id="flag3" onclick="location.href=&#39;/es/class-diagram&#39;" class="nosel2"></div><div id="flag4" onclick="location.href=&#39;/fr/class-diagram&#39;" class="nosel2"></div><div id="flag5" onclick="location.href=&#39;/ja/class-diagram&#39;" class="nosel2"></div><div id="flag6" onclick="location.href=&#39;/ko/class-diagram&#39;" class="sel2"></div><div id="flag7" onclick="location.href=&#39;/ru/class-diagram&#39;" class="nosel2"></div><div id="flag8" onclick="location.href=&#39;/zh/class-diagram&#39;" class="nosel2"></div></div></div></div><p><style>#topsticky{z-index:2;margin:0 240px 0 0}@media screen and (min-height:800px){#topsticky{position:sticky;top:40px}}@media screen and (max-width:1500px){#topsticky{margin:0}}</style></p><div id="topsticky"><span id="ezoic-pub-ad-placeholder-647"></span><!-- ezoic_pub_ad_placeholder-647-under_page_title-320x100-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-300x50v2-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-320x50-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-468x60-647-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-647-under_page_title-728x90-647-nonexxxnonexxxxxxezmaxscaleval100 --></div><p><a style="position:relative;top:-38px;" name="0bb074dd4a565b5d"></a><style>#toc{z-index:2;position:sticky;top:40px;list-style-type:none;margin:0;padding:0 10px}.chap{clear:both}#toc ul{list-style-type:none;max-height:87vh;overflow-y:auto;background:#f6f8fa;border-width:2px;border-style:groove;border-radius:3px;border-color:#e1e4e8;margin:0;padding:0}@media screen and (min-height:450px){#toc ul{max-height:89.5vh}}@media screen and (min-height:550px){#toc ul{max-height:91.5vh}}@media screen and (min-height:700px){#toc ul{max-height:93.5vh}}@media screen and (min-height:900px){#toc ul{max-height:94.5vh}}#toc li{margin:5px 5px 5px 10px;padding:0}@media screen and (max-width:1500px){#toctd{display:none}#toc{display:none}}</style><table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr valign="top" width="100%"><td valign="top"><h1 class="chap"><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#0"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#0"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#0"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Class Diagram</h1><p></p> Class diagrams are designed using a syntax that mirrors those traditionally employed in programming languages. This resemblance fosters a familiar environment for developers, thereby facilitating an easier and more intuitive diagram creation process. <p></p> This design approach is not only succinct but also enables the creation of representations that are both concise and expressive. Moreover, it allows for the portrayal of relationships between classes through a syntax that echoes that of sequence diagrams, paving the way for a fluid and insightful depiction of class interactions. <p></p> Beyond structural and relational representations, the class diagram syntax supports further enrichments such as the inclusion of notes and the application of colors, empowering users to create diagrams that are both informative and visually appealing. <p></p> You can learn more about some of the <a href="commons.html">common commands in PlantUML</a> to enhance your diagram creation experience. <a style="position:relative;top:-38px;" name="e5cec68ef9127fc4"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#1"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#1"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#1"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Declaring element</h2><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg23aa681f8acf06d2d8dd99d0491b9a99" class="msg"> 🎉 Copied! </div><img width="16" height="16" id="img23aa681f8acf06d2d8dd99d0491b9a99" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;23aa681f8acf06d2d8dd99d0491b9a99&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;23aa681f8acf06d2d8dd99d0491b9a99&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;23aa681f8acf06d2d8dd99d0491b9a99&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre23aa681f8acf06d2d8dd99d0491b9a99">@startuml
abstract        abstract
abstract class  &#34;abstract class&#34;
annotation      annotation
circle          circle
()              circle_short_form
class           class
class           class_stereo  &lt;&lt;stereotype&gt;&gt;
diamond         diamond
&lt;&gt;              diamond_short_form
entity          entity
enum            enum
exception       exception
interface       interface
metaclass       metaclass
protocol        protocol
stereotype      stereotype
struct          struct
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="633" height="402" class="scale" src="../imgw/img-23aa681f8acf06d2d8dd99d0491b9a99.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. for <code class="cod">protocol</code> and <code class="cod">struct</code>: <a href="https://github.com/plantuml/plantuml/pull/1028">GH-1028</a>, for <code class="cod">exception</code>: <a href="https://forum.plantuml.net/16258/adding-exception-keyword-for-class-diagram">QA-16258</a>]</em><a style="position:relative;top:-38px;" name="9dd2a6eca0c2a0e7"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-179"></span><!-- ezoic_pub_ad_placeholder-179-under_second_paragraph-234x60-179-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-179-under_second_paragraph-468x60-179-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-179-under_second_paragraph-728x90-179-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-179-under_second_paragraph-970x90-179-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#2"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#2"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#2"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>클래스 관계</h2><p></p> 클래스 관계는 다음과 같은 부호를 사용합니다. <p></p><table border="1" cellspacing="0" cellpadding="5"><tbody><tr><td><b> Type </b></td><td><b> Symbol </b></td><td><b> Drawing </b></td></tr><tr><td> Extension </td><td><code class="cod">&lt;|--</code></td><td><img loading="lazy" src="../img/extends01.png"/></td></tr><tr><td> Composition </td><td><code class="cod">*--</code></td><td><img loading="lazy" src="../img/sym03.png"/></td></tr><tr><td> Aggregation </td><td><code class="cod">o--</code></td><td><img loading="lazy" src="../img/sym01.png"/></td></tr></tbody></table><p></p><code class="cod">--</code> 는 <code class="cod">..</code> 점선으로 대체 가능합니다. <p></p> 이러한 규칙들로 다음과 같은 다이어그램을 그리는 것이 가능합니다. <p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg613a4e0a8abe4b01abfdb8dd57f22bee" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img613a4e0a8abe4b01abfdb8dd57f22bee" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;613a4e0a8abe4b01abfdb8dd57f22bee&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;613a4e0a8abe4b01abfdb8dd57f22bee&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;613a4e0a8abe4b01abfdb8dd57f22bee&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre613a4e0a8abe4b01abfdb8dd57f22bee">@startuml
Class01 &lt;|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="568" height="169" class="scale" src="../imgw/img-613a4e0a8abe4b01abfdb8dd57f22bee.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg3b72b9ea39442f6f2906be22f57481e7" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img3b72b9ea39442f6f2906be22f57481e7" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;3b72b9ea39442f6f2906be22f57481e7&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;3b72b9ea39442f6f2906be22f57481e7&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;3b72b9ea39442f6f2906be22f57481e7&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre3b72b9ea39442f6f2906be22f57481e7">@startuml
Class11 &lt;|.. Class12
Class13 --&gt; Class14
Class15 ..&gt; Class16
Class17 ..|&gt; Class18
Class19 &lt;--* Class20
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="568" height="169" class="scale" src="../imgw/img-3b72b9ea39442f6f2906be22f57481e7.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgf874eab4eb82d1e825b803e81f52a729" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgf874eab4eb82d1e825b803e81f52a729" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;f874eab4eb82d1e825b803e81f52a729&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;f874eab4eb82d1e825b803e81f52a729&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;f874eab4eb82d1e825b803e81f52a729&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pref874eab4eb82d1e825b803e81f52a729">@startuml
Class21 #-- Class22
Class23 x-- Class24
Class25 }-- Class26
Class27 +-- Class28
Class29 ^-- Class30
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="568" height="169" class="scale" src="../imgw/img-f874eab4eb82d1e825b803e81f52a729.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="4a705b44651caa59"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#3"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#3"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#3"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>관계를 나타내기 위한 레이블</h2><p></p><p></p> 관계에서 레이블을 추가하기 위해서는 뒤에 <code class="cod">:</code> 를 붙이고 레이블을 작성하면 됩니다. <p></p> 관계차수를 나타내기 위해서는 <code class="cod">&#34;&#34;</code>를 이용하여 관계의 양쪽 끝에 작성하면 됩니다. <p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga13e14495af0e2d0a23b538f8a3e0a24" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga13e14495af0e2d0a23b538f8a3e0a24" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a13e14495af0e2d0a23b538f8a3e0a24&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a13e14495af0e2d0a23b538f8a3e0a24&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a13e14495af0e2d0a23b538f8a3e0a24&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea13e14495af0e2d0a23b538f8a3e0a24">@startuml

Class01 &#34;1&#34; *-- &#34;many&#34; Class02 : contains

Class03 o-- Class04 : aggregation

Class05 --&gt; &#34;1&#34; Class06

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="332" height="187" class="scale" src="../imgw/img-a13e14495af0e2d0a23b538f8a3e0a24.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><code class="cod">&lt;</code> 또는 <code class="cod">&gt;</code>을 사용하여 객체가 다른 객체에 대한 흐름 관계를 더 자세히 설명할 수 있습니다. <p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgc6901f44f3c987b07c036d6326ae2e4d" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgc6901f44f3c987b07c036d6326ae2e4d" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;c6901f44f3c987b07c036d6326ae2e4d&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;c6901f44f3c987b07c036d6326ae2e4d&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;c6901f44f3c987b07c036d6326ae2e4d&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prec6901f44f3c987b07c036d6326ae2e4d">@startuml
class Car

Driver - Car : drives &gt;
Car *- Wheel : have 4 &gt;
Car -- Person : &lt; owns

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="379" height="187" class="scale" src="../imgw/img-c6901f44f3c987b07c036d6326ae2e4d.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="bd62ba9333d08763"></a></p><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-114"></span><!-- ezoic_pub_ad_placeholder-114-mid_content-234x60-114-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-114-mid_content-468x60-114-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-114-mid_content-728x90-114-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-114-mid_content-970x90-114-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#4"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#4"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#4"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Using non-letters in element names and relation labels</h2><p></p><p></p> If you want to use <a href="unicode.html">non-letters</a> in the class (or enum...) display name, you can either : <ul><li>Use the <code class="cod">as</code> keyword in the class definition to assign an alias</li><li>Put quotes <code class="cod">&#34;&#34;</code> around the class name</li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg0695f1bedd3167bac067a02c689a7ac9" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img0695f1bedd3167bac067a02c689a7ac9" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;0695f1bedd3167bac067a02c689a7ac9&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;0695f1bedd3167bac067a02c689a7ac9&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;0695f1bedd3167bac067a02c689a7ac9&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre0695f1bedd3167bac067a02c689a7ac9">@startuml
class &#34;This is my class&#34; as class1
class class2 as &#34;It works this way too&#34;

class2 *-- &#34;foo/dummy&#34; : use
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="336" height="187" class="scale" src="../imgw/img-0695f1bedd3167bac067a02c689a7ac9.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> If an alias is assigned to an element, the rest of the file must refer to the element by the alias instead of the name. <p></p><h3>Starting names with <code class="cod">$</code></h3> Note that names starting with <code class="cod">$</code> cannot be hidden or removed later, because <code class="cod">hide</code> and <code class="cod">remove</code> command will consider the name a <code class="cod">$tag</code> instead of a component name. To later remove such elements they must have an alias or must be tagged. <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg5dd89cc51e80831d56695cc98cd701e3" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img5dd89cc51e80831d56695cc98cd701e3" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;5dd89cc51e80831d56695cc98cd701e3&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;5dd89cc51e80831d56695cc98cd701e3&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;5dd89cc51e80831d56695cc98cd701e3&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre5dd89cc51e80831d56695cc98cd701e3">@startuml
class $C1
class $C2 $C2
class &#34;$C2&#34; as dollarC2
remove $C1
remove $C2
remove dollarC2
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="71" height="61" class="scale" src="../imgw/img-5dd89cc51e80831d56695cc98cd701e3.png"/></div></div></td></tr></tbody></table></p><p> Also note that names starting with <code class="cod">$</code> are valid, but to assign an alias to such element the name must be put between quotes <code class="cod">&#34;&#34;</code>. <a style="position:relative;top:-38px;" name="090967fbee930909"></a></p><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#5"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#5"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#5"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Adding methods</h2><p></p> To declare fields and methods, you can use the symbol <code class="cod">:</code> followed by the field&#39;s or method&#39;s name. <p></p> The system checks for parenthesis to choose between methods and fields. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgdfece97f850602cb2759823561771bf7" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgdfece97f850602cb2759823561771bf7" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;dfece97f850602cb2759823561771bf7&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;dfece97f850602cb2759823561771bf7&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;dfece97f850602cb2759823561771bf7&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="predfece97f850602cb2759823561771bf7">@startuml
Object &lt;|-- ArrayList

Object : equals()
ArrayList : Object[] elementData
ArrayList : size()

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="158" height="222" class="scale" src="../imgw/img-dfece97f850602cb2759823561771bf7.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p> It is also possible to group between brackets <code class="cod">{}</code> all fields and methods. <p></p> Note that the syntax is highly flexible about type/name order. <p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga054a2c9f6838418119098dd46e0c8b8" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga054a2c9f6838418119098dd46e0c8b8" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a054a2c9f6838418119098dd46e0c8b8&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a054a2c9f6838418119098dd46e0c8b8&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a054a2c9f6838418119098dd46e0c8b8&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea054a2c9f6838418119098dd46e0c8b8">@startuml
class Dummy {
  String data
  void methods()
}

class Flight {
   flightNumber : Integer
   departureTime : Date
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="301" height="96" class="scale" src="../imgw/img-a054a2c9f6838418119098dd46e0c8b8.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> You can use <code class="cod">{field}</code> and <code class="cod">{method}</code> modifiers to override default behaviour of the parser about fields and methods. <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg8c48be361b23d39bb1fc1f464b1a7b2b" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img8c48be361b23d39bb1fc1f464b1a7b2b" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;8c48be361b23d39bb1fc1f464b1a7b2b&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;8c48be361b23d39bb1fc1f464b1a7b2b&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;8c48be361b23d39bb1fc1f464b1a7b2b&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre8c48be361b23d39bb1fc1f464b1a7b2b">@startuml
class Dummy {
  {field} A field (despite parentheses)
  {method} Some method
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="214" height="103" class="scale" src="../imgw/img-8c48be361b23d39bb1fc1f464b1a7b2b.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="3644720244dd6c6a"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-115"></span><!-- ezoic_pub_ad_placeholder-115-long_content-234x60-115-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-115-long_content-468x60-115-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-115-long_content-728x90-115-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-115-long_content-970x90-115-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#6"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#6"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#6"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>메소드, 필드 가시화(Visibility) 정의</h2><p></p><p></p> 메소드나 필드들을 정의할 때, 특수문자를 사용하여 관련된 아이템을 가시화할 수 있습니다. 명령어는 다음과 같습니다: <p></p><table border="1" cellspacing="0" cellpadding="5"><tbody><tr><td><b> Character </b></td><td><b> Icon for field </b></td><td><b> Icon for method </b></td><td><b> Visibility </b></td></tr><tr><td><code class="cod">-</code></td><td><img loading="lazy" src="../img/private-field.png"/></td><td><img loading="lazy" src="../img/private-method.png"/></td><td> private </td></tr><tr><td><code class="cod">#</code></td><td><img loading="lazy" src="../img/protected-field.png"/></td><td><img loading="lazy" src="../img/protected-method.png"/></td><td> protected </td></tr><tr><td><code class="cod">~</code></td><td><img loading="lazy" src="../img/package-private-field.png"/></td><td><img loading="lazy" src="../img/package-private-method.png"/></td><td> package private </td></tr><tr><td><code class="cod">+</code></td><td><img loading="lazy" src="../img/public-field.png"/></td><td><img loading="lazy" src="../img/public-method.png"/></td><td> public </td></tr></tbody></table><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg29f5126cd9f01fb26abdfe89b4f571da" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img29f5126cd9f01fb26abdfe89b4f571da" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;29f5126cd9f01fb26abdfe89b4f571da&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;29f5126cd9f01fb26abdfe89b4f571da&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;29f5126cd9f01fb26abdfe89b4f571da&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre29f5126cd9f01fb26abdfe89b4f571da">@startuml

class Dummy {
 -field1
 #field2
 ~method1()
 +method2()
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="111" height="138" class="scale" src="../imgw/img-29f5126cd9f01fb26abdfe89b4f571da.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><code class="cod">skinparam classAttributeIconSize 0</code>를 사용하여, 아이콘 표시를 끌 수 있습니다. 명령어는 다음과 같습니다: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgb9f95b5def926196a3f6372993c00936" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgb9f95b5def926196a3f6372993c00936" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;b9f95b5def926196a3f6372993c00936&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;b9f95b5def926196a3f6372993c00936&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;b9f95b5def926196a3f6372993c00936&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preb9f95b5def926196a3f6372993c00936">@startuml
skinparam classAttributeIconSize 0
class Dummy {
 -field1
 #field2
 ~method1()
 +method2()
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="105" height="138" class="scale" src="../imgw/img-b9f95b5def926196a3f6372993c00936.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p><center><div class="tago">WARNING</div> <b>This translation need to be updated.</b> <div class="tago">WARNING</div></center><a style="position:relative;top:-38px;" name="9fd9d25be2fbb118"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#7"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#7"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#7"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Abstract and Static</h2><p></p> You can define static or abstract methods or fields using the <code class="cod">{static}</code> or <code class="cod">{abstract}</code> modifier. <p></p> These modifiers can be used at the start or at the end of the line. You can also use <code class="cod">{classifier}</code> instead of <code class="cod">{static}</code>. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgdea9355afdeee2ef46ca9c675ab483a8" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgdea9355afdeee2ef46ca9c675ab483a8" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;dea9355afdeee2ef46ca9c675ab483a8&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;dea9355afdeee2ef46ca9c675ab483a8&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;dea9355afdeee2ef46ca9c675ab483a8&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="predea9355afdeee2ef46ca9c675ab483a8">@startuml
class Dummy {
  {static} String id
  {abstract} void methods()
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="125" height="103" class="scale" src="../imgw/img-dea9355afdeee2ef46ca9c675ab483a8.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="08ca680401eefe3a"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-116"></span><!-- ezoic_pub_ad_placeholder-116-longer_content-234x60-116-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-116-longer_content-468x60-116-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-116-longer_content-728x90-116-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-116-longer_content-970x90-116-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#8"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#8"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#8"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Advanced class body</h2><p></p><p></p> By default, methods and fields are automatically regrouped by PlantUML. You can use separators to define your own way of ordering fields and methods. The following separators are possible : <code class="cod">--</code><code class="cod">..</code><code class="cod">==</code><code class="cod">__</code>. <p></p> You can also use titles within the separators: <p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg0c1108163137ddfc8de78390a8f0ae01" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img0c1108163137ddfc8de78390a8f0ae01" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;0c1108163137ddfc8de78390a8f0ae01&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;0c1108163137ddfc8de78390a8f0ae01&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;0c1108163137ddfc8de78390a8f0ae01&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre0c1108163137ddfc8de78390a8f0ae01">@startuml
class Foo1 {
  You can use
  several lines
  ..
  as you want
  and group
  ==
  things together.
  __
  You can have as many groups
  as you want
  --
  End of class
}

class User {
  .. Simple Getter ..
  + getName()
  + getAddress()
  .. Some setter ..
  + setName()
  __ private data __
  int age
  -- encrypted --
  String password
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="365" height="227" class="scale" src="../imgw/img-0c1108163137ddfc8de78390a8f0ae01.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="59c91a18bcc97bb0"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#9"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#9"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#9"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Notes and stereotypes</h2><p></p><p></p> Stereotypes are defined with the <code class="cod">class</code> keyword, <code class="cod">&lt;&lt;</code> and <code class="cod">&gt;&gt;</code>. <p></p> You can also define notes using <code class="cod">note left of</code> , &lt;code&gt;note right of&lt;/code&gt; , <code class="cod">note top of</code> , <code class="cod">note bottom of</code> keywords. <p></p> You can also define a note on the last defined class using <code class="cod">note left</code>, <code class="cod">note right</code>, <code class="cod">note top</code>, <code class="cod">note bottom</code>. <p></p> A note can be also define alone with the <code class="cod">note</code> keywords, then linked to other objects using the <code class="cod">..</code> symbol. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg1dab387b5b418cfea3060cbc0a15b500" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img1dab387b5b418cfea3060cbc0a15b500" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;1dab387b5b418cfea3060cbc0a15b500&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;1dab387b5b418cfea3060cbc0a15b500&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;1dab387b5b418cfea3060cbc0a15b500&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre1dab387b5b418cfea3060cbc0a15b500">@startuml
class Object &lt;&lt; general &gt;&gt;
Object &lt;|--- ArrayList

note top of Object : In java, every class\nextends this one.

note &#34;This is a floating note&#34; as N1
note &#34;This note is connected\nto several objects.&#34; as N2
Object .. N2
N2 .. ArrayList

class Foo
note left: On last defined class

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="591" height="391" class="scale" src="../imgw/img-1dab387b5b418cfea3060cbc0a15b500.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="23ca7846dedbb80a"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-117"></span><!-- ezoic_pub_ad_placeholder-117-longest_content-234x60-117-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-117-longest_content-468x60-117-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-117-longest_content-728x90-117-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-117-longest_content-970x90-117-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#10"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#10"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#10"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>More on notes</h2><p></p><p></p> It is also possible to use few HTML tags (See <a href="creole.html">Creole expression</a>) like : <p></p><ul><li><code class="cod">&lt;b&gt;</code></li><li><code class="cod">&lt;u&gt;</code></li><li><code class="cod">&lt;i&gt;</code></li><li><code class="cod">&lt;s&gt;</code>, <code class="cod">&lt;del&gt;</code>, <code class="cod">&lt;strike&gt;</code></li><li><code class="cod">&lt;font color=&#34;#AAAAAA&#34;&gt;</code> or <code class="cod">&lt;font color=&#34;colorName&#34;&gt;</code></li><li><code class="cod">&lt;color:#AAAAAA&gt;</code> or <code class="cod">&lt;color:colorName&gt;</code></li><li><code class="cod">&lt;size:nn&gt;</code> to change font size</li><li><code class="cod">&lt;img src=&#34;file&#34;&gt;</code> or <code class="cod">&lt;img:file&gt;</code>: the file must be accessible by the filesystem</li></ul><p></p><p></p> You can also have a note on several lines. <p></p> You can also define a note on the last defined class using <code class="cod">note left</code>, <code class="cod">note right</code>, <code class="cod">note top</code>, <code class="cod">note bottom</code>. <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg6158d2709ef91651c5aba959ac8ba7d0" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img6158d2709ef91651c5aba959ac8ba7d0" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;6158d2709ef91651c5aba959ac8ba7d0&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;6158d2709ef91651c5aba959ac8ba7d0&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;6158d2709ef91651c5aba959ac8ba7d0&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre6158d2709ef91651c5aba959ac8ba7d0">@startuml

class Foo
note left: On last defined class

note top of Foo
  In java, &lt;size:18&gt;every&lt;/size&gt; &lt;u&gt;class&lt;/u&gt;
  &lt;b&gt;extends&lt;/b&gt;
  &lt;i&gt;this&lt;/i&gt; one.
end note

note as N1
  This note is &lt;u&gt;also&lt;/u&gt;
  &lt;b&gt;&lt;color:royalBlue&gt;on several&lt;/color&gt;
  &lt;s&gt;words&lt;/s&gt; lines
  And this is hosted by &lt;img:sourceforge.jpg&gt;
end note

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="579" height="210" class="scale" src="../imgw/img-6158d2709ef91651c5aba959ac8ba7d0.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="c909b0b5f0434a64"></a></p><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#11"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#11"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#11"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Note on field (field, attribute, member) or method</h2><p></p><p></p> It is possible to add a note on field (field, attribute, member) or on method. <p></p><h3>⚠ Constraint</h3><ul><li>This cannot be used with <code class="cod">top</code> or <code class="cod">bottom</code><em>(only <code class="cod">left</code> and <code class="cod">right</code> are implemented)</em></li><li>This cannot be used with namespaceSeparator <code class="cod">::</code></li></ul><p></p><p></p><h3>Note on field or method</h3><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga95a880f6bb23019c7c1c5a3e6430e4f" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga95a880f6bb23019c7c1c5a3e6430e4f" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a95a880f6bb23019c7c1c5a3e6430e4f&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a95a880f6bb23019c7c1c5a3e6430e4f&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a95a880f6bb23019c7c1c5a3e6430e4f&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea95a880f6bb23019c7c1c5a3e6430e4f">@startuml
class A {
{static} int counter
+void {abstract} start(int timeout)
}
note right of A::counter
  This member is annotated
end note
note right of A::start
  This method is now explained in a UML note
end note
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="483" height="96" class="scale" src="../imgw/img-a95a880f6bb23019c7c1c5a3e6430e4f.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p><h3>Note on method with the same name</h3><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg7abe5d8328f434328a71497c6a45d5a8" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img7abe5d8328f434328a71497c6a45d5a8" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;7abe5d8328f434328a71497c6a45d5a8&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;7abe5d8328f434328a71497c6a45d5a8&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;7abe5d8328f434328a71497c6a45d5a8&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre7abe5d8328f434328a71497c6a45d5a8">@startuml
class A {
{static} int counter
+void {abstract} start(int timeoutms)
+void {abstract} start(Duration timeout)
}
note left of A::counter
  This member is annotated
end note
note right of A::&#34;start(int timeoutms)&#34;
  This method with int
end note
note right of A::&#34;start(Duration timeout)&#34;
  This method with Duration
end note
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="621" height="113" class="scale" src="../imgw/img-7abe5d8328f434328a71497c6a45d5a8.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/3474">QA-3474</a> and <a href="https://forum.plantuml.net/5835">QA-5835</a>]</em><a style="position:relative;top:-38px;" name="1d010d898a1fead2"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-118"></span><!-- ezoic_pub_ad_placeholder-118-incontent_5-234x60-118-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-118-incontent_5-468x60-118-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-118-incontent_5-728x90-118-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-118-incontent_5-970x90-118-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#12"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#12"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#12"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Note on links</h2><p></p><p></p> It is possible to add a note on a link, just after the link definition, using <code class="cod">note on link</code>. <p></p> You can also use <code class="cod">note left on link</code>, <code class="cod">note right on link</code>, <code class="cod">note top on link</code>, <code class="cod">note bottom on link</code> if you want to change the relative position of the note with the label. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg9c8025b84db011f9b1187875866723fa" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img9c8025b84db011f9b1187875866723fa" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;9c8025b84db011f9b1187875866723fa&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;9c8025b84db011f9b1187875866723fa&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;9c8025b84db011f9b1187875866723fa&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre9c8025b84db011f9b1187875866723fa">@startuml

class Dummy
Dummy --&gt; Foo : A link
note on link #red: note that is red

Dummy --&gt; Foo2 : Another link
note right on link #blue
this is my note on right link
and in blue
end note

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="436" height="223" class="scale" src="../imgw/img-9c8025b84db011f9b1187875866723fa.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="a339d3559f33ad64"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#13"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#13"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#13"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Abstract class and interface</h2><p></p><p></p> &lt;a name=&#34;enum&#34; id=&#34;enum&#34;&gt;You can declare a class as abstract using <code class="cod">&#34;abstract&#34;</code> or <code class="cod">&#34;abstract class&#34;</code> keywords.&lt;/a&gt; <p></p><p></p> The class will be printed in <em>italic</em>.&lt;/p&gt; <p></p><p></p> You can use the <code class="cod">interface</code>, <code class="cod">annotation</code> and <code class="cod">enum</code> keywords too.&lt;/p&gt; <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg1a6689bc764659a115100f417895b670" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img1a6689bc764659a115100f417895b670" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;1a6689bc764659a115100f417895b670&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;1a6689bc764659a115100f417895b670&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;1a6689bc764659a115100f417895b670&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre1a6689bc764659a115100f417895b670">@startuml

abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection

List &lt;|-- AbstractList
Collection &lt;|-- AbstractCollection

Collection &lt;|- List
AbstractCollection &lt;|- AbstractList
AbstractList &lt;|-- ArrayList

class ArrayList {
  Object[] elementData
  size()
}

enum TimeUnit {
  DAYS
  HOURS
  MINUTES
}

annotation SuppressWarnings

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="571" height="365" class="scale" src="../imgw/img-1a6689bc764659a115100f417895b670.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> *[Ref. &#39;Annotation with members&#39; [Issue#458](https://github.com/plantuml/plantuml/issues/458)]* <center><div class="tago">WARNING</div> <b>This translation need to be updated.</b> <div class="tago">WARNING</div></center><a style="position:relative;top:-38px;" name="6a8ec84e53ede3ae"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-119"></span><!-- ezoic_pub_ad_placeholder-119-incontent_6-234x60-119-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-119-incontent_6-468x60-119-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-119-incontent_6-728x90-119-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-119-incontent_6-970x90-119-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#14"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#14"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#14"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Hide attributes, methods...</h2><p></p> You can parameterize the display of classes using the <code class="cod">hide/show</code> command. <p></p> The basic command is: <code class="cod">hide empty members</code>. This command will hide attributes or methods if they are empty. <p></p> Instead of <code class="cod">empty members</code>, you can use: <ul><li><code class="cod">empty fields</code> or <code class="cod">empty attributes</code> for empty fields,</li><li><code class="cod">empty methods</code> for empty methods,</li><li><code class="cod">fields</code> or <code class="cod">attributes</code> which will hide fields, even if they are described,</li><li><code class="cod">methods</code> which will hide methods, even if they are described,</li><li><code class="cod">members</code> which will hide fields <u>and</u> methods, even if they are described,</li><li><code class="cod">circle</code> for the circled character in front of class name,</li><li><code class="cod">stereotype</code> for the stereotype.</li></ul><p></p> You can also provide, just after the <code class="cod">hide</code> or <code class="cod">show</code> keyword: <ul><li><code class="cod">class</code> for all classes,</li><li><code class="cod">interface</code> for all interfaces,</li><li><code class="cod">enum</code> for all enums,</li><li><code class="cod">&lt;&lt;foo1&gt;&gt;</code> for classes which are stereotyped with <em>foo1</em>,</li><li>an existing class name.</li></ul><p></p> You can use several <code class="cod">show/hide</code> commands to define rules and exceptions. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga9625958027a1113526ba1ebc568801d" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga9625958027a1113526ba1ebc568801d" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a9625958027a1113526ba1ebc568801d&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a9625958027a1113526ba1ebc568801d&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a9625958027a1113526ba1ebc568801d&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea9625958027a1113526ba1ebc568801d">@startuml

class Dummy1 {
  +myMethods()
}

class Dummy2 {
  +hiddenMethod()
}

class Dummy3 &lt;&lt;Serializable&gt;&gt; {
String name
}

hide members
hide &lt;&lt;Serializable&gt;&gt; circle
show Dummy1 methods
show &lt;&lt;Serializable&gt;&gt; fields

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="243" height="199" class="scale" src="../imgw/img-a9625958027a1113526ba1ebc568801d.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="20ec7d48c223b142"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#15"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#15"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#15"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Hide classes</h2><p></p> You can also use the <code class="cod">show/hide</code> commands to hide classes. <p></p> This may be useful if you define a large <a href="preprocessing.html">!included file</a>, and if you want to hide some classes after <a href="preprocessing.html">file inclusion</a>. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg7c41dc3b9e056a73390a4a6352785202" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img7c41dc3b9e056a73390a4a6352785202" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;7c41dc3b9e056a73390a4a6352785202&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;7c41dc3b9e056a73390a4a6352785202&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;7c41dc3b9e056a73390a4a6352785202&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre7c41dc3b9e056a73390a4a6352785202">@startuml

class Foo1
class Foo2

Foo2 *-- Foo1

hide Foo2

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="78" height="169" class="scale" src="../imgw/img-7c41dc3b9e056a73390a4a6352785202.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="3efa75742a5e3384"></a></p><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-120"></span><!-- ezoic_pub_ad_placeholder-120-incontent_7-234x60-120-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-120-incontent_7-468x60-120-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-120-incontent_7-728x90-120-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-120-incontent_7-970x90-120-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#16"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#16"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#16"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Remove classes</h2><p></p> You can also use the <code class="cod">remove</code> commands to remove classes. <p></p> This may be useful if you define a large <a href="preprocessing.html">!included file</a>, and if you want to remove some classes after <a href="preprocessing.html">file inclusion</a>. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgfeb0b674668fd60d6a489dd998a76559" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgfeb0b674668fd60d6a489dd998a76559" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;feb0b674668fd60d6a489dd998a76559&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;feb0b674668fd60d6a489dd998a76559&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;feb0b674668fd60d6a489dd998a76559&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prefeb0b674668fd60d6a489dd998a76559">@startuml

class Foo1
class Foo2

Foo2 *-- Foo1

remove Foo2

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="78" height="61" class="scale" src="../imgw/img-feb0b674668fd60d6a489dd998a76559.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="c0ef243486e3ad85"></a></p><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#17"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#17"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#17"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Hide, Remove or Restore tagged element or wildcard</h2><p></p> You can put <code class="cod">$tags</code> (using <code class="cod">$</code>) on elements, then remove, hide or restore components either individually or by tags. <p></p> By default, all components are displayed: <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga333f129b395367cb7aad6c78aad31c4" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga333f129b395367cb7aad6c78aad31c4" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a333f129b395367cb7aad6c78aad31c4&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a333f129b395367cb7aad6c78aad31c4&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a333f129b395367cb7aad6c78aad31c4&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea333f129b395367cb7aad6c78aad31c4">@startuml
class C1 $tag13
enum E1
interface I1 $tag13
C1 -- I1
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="147" height="169" class="scale" src="../imgw/img-a333f129b395367cb7aad6c78aad31c4.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> But you can: <ul><li><code class="cod">hide $tag13</code> components:</li></ul><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgaeda65473c554e4de42411e74f6910a6" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgaeda65473c554e4de42411e74f6910a6" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;aeda65473c554e4de42411e74f6910a6&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;aeda65473c554e4de42411e74f6910a6&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;aeda65473c554e4de42411e74f6910a6&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preaeda65473c554e4de42411e74f6910a6">@startuml
class C1 $tag13
enum E1
interface I1 $tag13
C1 -- I1

hide $tag13
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="147" height="169" class="scale" src="../imgw/img-aeda65473c554e4de42411e74f6910a6.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><ul><li>or <code class="cod">remove $tag13</code> components:</li></ul><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg19ff75ab006454609ec48154d67c4cef" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img19ff75ab006454609ec48154d67c4cef" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;19ff75ab006454609ec48154d67c4cef&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;19ff75ab006454609ec48154d67c4cef&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;19ff75ab006454609ec48154d67c4cef&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre19ff75ab006454609ec48154d67c4cef">@startuml
class C1 $tag13
enum E1
interface I1 $tag13
C1 -- I1

remove $tag13
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="62" height="61" class="scale" src="../imgw/img-19ff75ab006454609ec48154d67c4cef.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><ul><li>or <code class="cod">remove $tag13 and restore $tag1</code> components:</li></ul><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg360bf0f52029eea343cd6540f9aaea1e" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img360bf0f52029eea343cd6540f9aaea1e" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;360bf0f52029eea343cd6540f9aaea1e&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;360bf0f52029eea343cd6540f9aaea1e&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;360bf0f52029eea343cd6540f9aaea1e&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre360bf0f52029eea343cd6540f9aaea1e">@startuml
class C1 $tag13 $tag1
enum E1
interface I1 $tag13
C1 -- I1

remove $tag13
restore $tag1
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="147" height="61" class="scale" src="../imgw/img-360bf0f52029eea343cd6540f9aaea1e.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><ul><li>or <code class="cod">remove * and restore $tag1</code> components:</li></ul><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg3d1703423d8dc7cb77afc134630a8c12" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img3d1703423d8dc7cb77afc134630a8c12" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;3d1703423d8dc7cb77afc134630a8c12&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;3d1703423d8dc7cb77afc134630a8c12&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;3d1703423d8dc7cb77afc134630a8c12&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre3d1703423d8dc7cb77afc134630a8c12">@startuml
class C1 $tag13 $tag1
enum E1
interface I1 $tag13
C1 -- I1

remove *
restore $tag1
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="6" height="6" class="scale" src="../imgw/img-3d1703423d8dc7cb77afc134630a8c12.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="382f74cc79c4edbc"></a></p><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-121"></span><!-- ezoic_pub_ad_placeholder-121-incontent_8-234x60-121-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-121-incontent_8-468x60-121-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-121-incontent_8-728x90-121-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-121-incontent_8-970x90-121-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#18"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#18"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#18"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Hide or Remove unlinked class</h2><p></p> By default, all classes are displayed: <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg090cb556106c728d56578df1efcf2700" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img090cb556106c728d56578df1efcf2700" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;090cb556106c728d56578df1efcf2700&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;090cb556106c728d56578df1efcf2700&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;090cb556106c728d56578df1efcf2700&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre090cb556106c728d56578df1efcf2700">@startuml
class C1
class C2
class C3
C1 -- C2
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="148" height="169" class="scale" src="../imgw/img-090cb556106c728d56578df1efcf2700.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> But you can: <ul><li><code class="cod">hide @unlinked</code> classes:</li></ul><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg8bc4c8bcece488747d2d159d897b87f9" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img8bc4c8bcece488747d2d159d897b87f9" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;8bc4c8bcece488747d2d159d897b87f9&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;8bc4c8bcece488747d2d159d897b87f9&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;8bc4c8bcece488747d2d159d897b87f9&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre8bc4c8bcece488747d2d159d897b87f9">@startuml
class C1
class C2
class C3
C1 -- C2

hide @unlinked
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="148" height="169" class="scale" src="../imgw/img-8bc4c8bcece488747d2d159d897b87f9.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><ul><li>or <code class="cod">remove @unlinked</code> classes:</li></ul><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgf1337745f01d853f42df3638d3f2e854" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgf1337745f01d853f42df3638d3f2e854" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;f1337745f01d853f42df3638d3f2e854&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;f1337745f01d853f42df3638d3f2e854&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;f1337745f01d853f42df3638d3f2e854&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pref1337745f01d853f42df3638d3f2e854">@startuml
class C1
class C2
class C3
C1 -- C2

remove @unlinked
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="63" height="169" class="scale" src="../imgw/img-f1337745f01d853f42df3638d3f2e854.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p><em>[Adapted from <a href="https://forum.plantuml.net/11052">QA-11052</a>]</em><a style="position:relative;top:-38px;" name="b09695ba6d76313d"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#19"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#19"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#19"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Use generics</h2><p></p><p></p> You can also use bracket <code class="cod">&lt;</code> and <code class="cod">&gt;</code> to define generics usage in a class. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg4dd6659fc9513a8e202d1f350d2d481b" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img4dd6659fc9513a8e202d1f350d2d481b" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;4dd6659fc9513a8e202d1f350d2d481b&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;4dd6659fc9513a8e202d1f350d2d481b&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;4dd6659fc9513a8e202d1f350d2d481b&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre4dd6659fc9513a8e202d1f350d2d481b">@startuml

class Foo&lt;? extends Element&gt; {
  int size()
}
Foo *- Element

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="294" height="81" class="scale" src="../imgw/img-4dd6659fc9513a8e202d1f350d2d481b.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> It is possible to disable this drawing using <code class="cod">skinparam genericDisplay old</code> command. <p></p><a style="position:relative;top:-38px;" name="4b62dd14f1d33739"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-122"></span><!-- ezoic_pub_ad_placeholder-122-incontent_9-234x60-122-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-122-incontent_9-468x60-122-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-122-incontent_9-728x90-122-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-122-incontent_9-970x90-122-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#20"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#20"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#20"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Specific Spot</h2><p></p> Usually, a spotted character (C, I, E or A) is used for classes, interface, enum and abstract classes. <p></p> But you can define your own spot for a class when you define the stereotype, adding a single character and a color, like in this example: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga8c669a19738abf19742957faad2f7c2" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga8c669a19738abf19742957faad2f7c2" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a8c669a19738abf19742957faad2f7c2&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a8c669a19738abf19742957faad2f7c2&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a8c669a19738abf19742957faad2f7c2&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea8c669a19738abf19742957faad2f7c2">@startuml

class System &lt;&lt; (S,#FF7700) Singleton &gt;&gt;
class Date &lt;&lt; (D,orchid) &gt;&gt;
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="204" height="71" class="scale" src="../imgw/img-a8c669a19738abf19742957faad2f7c2.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="27fe4eb3edbaff8f"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#21"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#21"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#21"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Packages</h2><p></p> You can define a package using the <code class="cod">package</code> keyword, and optionally declare a background color for your package (Using a html color code or name). <p></p> Note that package definitions can be nested. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgb39b9323ddfe8633a2c950b0684ad63b" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgb39b9323ddfe8633a2c950b0684ad63b" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;b39b9323ddfe8633a2c950b0684ad63b&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;b39b9323ddfe8633a2c950b0684ad63b&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;b39b9323ddfe8633a2c950b0684ad63b&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preb39b9323ddfe8633a2c950b0684ad63b">@startuml

package &#34;Classic Collections&#34; #DDDDDD {
  Object &lt;|-- ArrayList
}

package com.plantuml {
  Object &lt;|-- Demo1
  Demo1 *- Demo2
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="455" height="280" class="scale" src="../imgw/img-b39b9323ddfe8633a2c950b0684ad63b.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="a05971470d7fd711"></a></p><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-123"></span><!-- ezoic_pub_ad_placeholder-123-incontent_10-234x60-123-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-123-incontent_10-468x60-123-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-123-incontent_10-728x90-123-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-123-incontent_10-970x90-123-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#22"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#22"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#22"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Packages style</h2><p></p><p></p><p></p> There are different styles available for packages. <p></p> You can specify them either by setting a default style with the command : <code class="cod">skinparam packageStyle</code>, or by using a stereotype on the package: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgbd8a6d046e1a615dcaba28365dd61032" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgbd8a6d046e1a615dcaba28365dd61032" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;bd8a6d046e1a615dcaba28365dd61032&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;bd8a6d046e1a615dcaba28365dd61032&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;bd8a6d046e1a615dcaba28365dd61032&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prebd8a6d046e1a615dcaba28365dd61032">@startuml
scale 750 width
package foo1 &lt;&lt;Node&gt;&gt; {
  class Class1
}

package foo2 &lt;&lt;Rectangle&gt;&gt; {
  class Class2
}

package foo3 &lt;&lt;Folder&gt;&gt; {
  class Class3
}

package foo4 &lt;&lt;Frame&gt;&gt; {
  class Class4
}

package foo5 &lt;&lt;Cloud&gt;&gt; {
  class Class5
}

package foo6 &lt;&lt;Database&gt;&gt; {
  class Class6
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="750" height="128" class="scale" src="../imgw/img-bd8a6d046e1a615dcaba28365dd61032.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p> You can also define links between packages, like in the following example: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgf4e65205bdeed93025fc42bba7b61f5a" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgf4e65205bdeed93025fc42bba7b61f5a" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;f4e65205bdeed93025fc42bba7b61f5a&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;f4e65205bdeed93025fc42bba7b61f5a&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;f4e65205bdeed93025fc42bba7b61f5a&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pref4e65205bdeed93025fc42bba7b61f5a">@startuml

skinparam packageStyle rectangle

package foo1.foo2 {
}

package foo1.foo2.foo3 {
  class Object
}

foo1.foo2 +-- foo1.foo2.foo3

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="297" height="320" class="scale" src="../imgw/img-f4e65205bdeed93025fc42bba7b61f5a.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="13d28e8dfc702e34"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#23"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#23"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#23"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Namespaces</h2><p></p> Starting with version 1.2023.2 (which is online as a beta), PlantUML handles differently namespaces and packages. <p></p> There won&#39;t be any difference between namespaces and packages anymore: both keywords are now synonymous. <a style="position:relative;top:-38px;" name="0d2504841361d7da"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-194"></span><!-- ezoic_pub_ad_placeholder-194-incontent_11-234x60-194-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-194-incontent_11-468x60-194-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-194-incontent_11-728x90-194-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-194-incontent_11-970x90-194-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#24"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#24"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#24"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Automatic namespace creation</h2><p></p> You can define another separator (other than the dot) using the command : <code class="cod">set namespaceSeparator ???</code>. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msge452fa75f7599d298d357d2137e152d6" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imge452fa75f7599d298d357d2137e152d6" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;e452fa75f7599d298d357d2137e152d6&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;e452fa75f7599d298d357d2137e152d6&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;e452fa75f7599d298d357d2137e152d6&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pree452fa75f7599d298d357d2137e152d6">@startuml

set namespaceSeparator ::
class X1::X2::foo {
  some info
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="166" height="198" class="scale" src="../imgw/img-e452fa75f7599d298d357d2137e152d6.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> You can disable automatic package creation using the command <code class="cod">set namespaceSeparator none</code>. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg2f5aa57ab85a69d372111b856d18697c" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img2f5aa57ab85a69d372111b856d18697c" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;2f5aa57ab85a69d372111b856d18697c&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;2f5aa57ab85a69d372111b856d18697c&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;2f5aa57ab85a69d372111b856d18697c&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre2f5aa57ab85a69d372111b856d18697c">@startuml

set namespaceSeparator none
class X1.X2.foo {
  some info
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="112" height="85" class="scale" src="../imgw/img-2f5aa57ab85a69d372111b856d18697c.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p><p></p><center><div class="tago">WARNING</div> <b>This translation need to be updated.</b> <div class="tago">WARNING</div></center><a style="position:relative;top:-38px;" name="8b64d7547fa4f699"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#25"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#25"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#25"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Lollipop interface</h2><p></p><p></p> You can also define lollipops interface on classes, using the following syntax: <ul><li><code class="cod">bar ()- foo</code></li><li><code class="cod">bar ()-- foo</code></li><li><code class="cod">foo -() bar</code></li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgac105007c57864b3e0763f484b171dc4" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgac105007c57864b3e0763f484b171dc4" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;ac105007c57864b3e0763f484b171dc4&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;ac105007c57864b3e0763f484b171dc4&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;ac105007c57864b3e0763f484b171dc4&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preac105007c57864b3e0763f484b171dc4">@startuml
class foo
bar ()- foo
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="114" height="61" class="scale" src="../imgw/img-ac105007c57864b3e0763f484b171dc4.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="5a6e75f1261e3d91"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-195"></span><!-- ezoic_pub_ad_placeholder-195-incontent_12-234x60-195-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-195-incontent_12-468x60-195-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-195-incontent_12-728x90-195-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-195-incontent_12-970x90-195-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#26"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#26"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#26"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Changing arrows orientation</h2><p></p> By default, links between classes have two dashes <code class="cod">--</code> and are vertically oriented. It is possible to use horizontal link by putting a single dash (or dot) like this: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga335c52f33e267127e6686dde9ce2674" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga335c52f33e267127e6686dde9ce2674" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a335c52f33e267127e6686dde9ce2674&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a335c52f33e267127e6686dde9ce2674&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a335c52f33e267127e6686dde9ce2674&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea335c52f33e267127e6686dde9ce2674">@startuml
Room o- Student
Room *-- Chair
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="198" height="169" class="scale" src="../imgw/img-a335c52f33e267127e6686dde9ce2674.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> You can also change directions by reversing the link: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga063ddff1d1e34c9d23a968dfdb5fdc2" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga063ddff1d1e34c9d23a968dfdb5fdc2" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a063ddff1d1e34c9d23a968dfdb5fdc2&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a063ddff1d1e34c9d23a968dfdb5fdc2&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a063ddff1d1e34c9d23a968dfdb5fdc2&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea063ddff1d1e34c9d23a968dfdb5fdc2">@startuml
Student -o Room
Chair --* Room
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="198" height="169" class="scale" src="../imgw/img-a063ddff1d1e34c9d23a968dfdb5fdc2.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> It is also possible to change arrow direction by adding <code class="cod">left</code>, <code class="cod">right</code>, <code class="cod">up</code> or <code class="cod">down</code> keywords inside the arrow: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgd97b6a005afdd2ed42faf93ea9ef05ff" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgd97b6a005afdd2ed42faf93ea9ef05ff" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;d97b6a005afdd2ed42faf93ea9ef05ff&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;d97b6a005afdd2ed42faf93ea9ef05ff&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;d97b6a005afdd2ed42faf93ea9ef05ff&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pred97b6a005afdd2ed42faf93ea9ef05ff">@startuml
foo -left-&gt; dummyLeft
foo -right-&gt; dummyRight
foo -up-&gt; dummyUp
foo -down-&gt; dummyDown
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="346" height="277" class="scale" src="../imgw/img-d97b6a005afdd2ed42faf93ea9ef05ff.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> You can shorten the arrow by using only the first character of the direction (for example, <code class="cod">-d-</code> instead of <code class="cod">-down-</code>) or the two first characters (<code class="cod">-do-</code>). <p></p> Please note that you should not abuse this functionality : <em>Graphviz</em> gives usually good results without tweaking. <p></p> And with the <a href="use-case-diagram.html#d551e48d272b2b07"><code class="cod">left to right direction</code></a> parameter: <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg167e5757b15e5206a813c6bb3948b274" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img167e5757b15e5206a813c6bb3948b274" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;167e5757b15e5206a813c6bb3948b274&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;167e5757b15e5206a813c6bb3948b274&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;167e5757b15e5206a813c6bb3948b274&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre167e5757b15e5206a813c6bb3948b274">@startuml
left to right direction
foo -left-&gt; dummyLeft
foo -right-&gt; dummyRight
foo -up-&gt; dummyUp
foo -down-&gt; dummyDown
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="449" height="227" class="scale" src="../imgw/img-167e5757b15e5206a813c6bb3948b274.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="fbbc0504d940020e"></a></p><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#27"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#27"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#27"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Association classes</h2><p></p> You can define <em>association class</em> after that a relation has been defined between two classes, like in this example: <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgb25efbc507617923ddfc5e95e02508b0" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgb25efbc507617923ddfc5e95e02508b0" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;b25efbc507617923ddfc5e95e02508b0&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;b25efbc507617923ddfc5e95e02508b0&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;b25efbc507617923ddfc5e95e02508b0&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preb25efbc507617923ddfc5e95e02508b0">@startuml
class Student {
  Name
}
Student &#34;0..*&#34; - &#34;1..*&#34; Course
(Student, Course) .. Enrollment

class Enrollment {
  drop()
  cancel()
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="246" height="222" class="scale" src="../imgw/img-b25efbc507617923ddfc5e95e02508b0.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> You can define it in another direction: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgfd8a644e2f6ce6d083a8967329f69b7b" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgfd8a644e2f6ce6d083a8967329f69b7b" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;fd8a644e2f6ce6d083a8967329f69b7b&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;fd8a644e2f6ce6d083a8967329f69b7b&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;fd8a644e2f6ce6d083a8967329f69b7b&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prefd8a644e2f6ce6d083a8967329f69b7b">@startuml
class Student {
  Name
}
Student &#34;0..*&#34; -- &#34;1..*&#34; Course
(Student, Course) . Enrollment

class Enrollment {
  drop()
  cancel()
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="190" height="330" class="scale" src="../imgw/img-fd8a644e2f6ce6d083a8967329f69b7b.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="43980c266e3ad62c"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-196"></span><!-- ezoic_pub_ad_placeholder-196-incontent_13-234x60-196-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-196-incontent_13-468x60-196-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-196-incontent_13-728x90-196-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-196-incontent_13-970x90-196-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#28"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#28"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#28"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Association on same class</h2><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga68dad30df232644b7d71dcbbe6492a2" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga68dad30df232644b7d71dcbbe6492a2" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a68dad30df232644b7d71dcbbe6492a2&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a68dad30df232644b7d71dcbbe6492a2&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a68dad30df232644b7d71dcbbe6492a2&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea68dad30df232644b7d71dcbbe6492a2">@startuml
class Station {
    +name: string
}

class StationCrossing {
    +cost: TimeInterval
}

&lt;&gt; diamond

StationCrossing . diamond
diamond - &#34;from 0..*&#34; Station
diamond - &#34;to 0..* &#34; Station
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="348" height="84" class="scale" src="../imgw/img-a68dad30df232644b7d71dcbbe6492a2.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="http://wiki.plantuml.net/site/incubation#associations">Incubation: Associations</a>]</em><a style="position:relative;top:-38px;" name="7aa53dbdfc2137bf"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#29"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#29"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#29"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Skinparam</h2><p></p> You can use the <a href="skinparam.html">skinparam</a> command to change colors and fonts for the drawing. <p></p> You can use this command : <ul><li>In the diagram definition, like any other commands,</li><li>In an <a href="preprocessing.html">included file</a>,</li><li>In a configuration file, provided in the <a href="command-line.html">command line</a> or the <a href="ant-task.html">ANT task</a>.</li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg74c37308ddc95897ba45634618cac67a" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img74c37308ddc95897ba45634618cac67a" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;74c37308ddc95897ba45634618cac67a&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;74c37308ddc95897ba45634618cac67a&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;74c37308ddc95897ba45634618cac67a&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre74c37308ddc95897ba45634618cac67a">@startuml

skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
}
skinparam stereotypeCBackgroundColor YellowGreen

Class01 &#34;1&#34; *-- &#34;many&#34; Class02 : contains

Class03 o-- Class04 : aggregation

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="241" height="187" class="scale" src="../imgw/img-74c37308ddc95897ba45634618cac67a.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="89a4c54a52d87715"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-197"></span><!-- ezoic_pub_ad_placeholder-197-incontent_14-234x60-197-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-197-incontent_14-468x60-197-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-197-incontent_14-728x90-197-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-197-incontent_14-970x90-197-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#30"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#30"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#30"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Skinned Stereotypes</h2><p></p><p></p> You can define specific color and fonts for stereotyped classes. <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgd0ca21b8e9c06f5c8f9ca3c66c917fac" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgd0ca21b8e9c06f5c8f9ca3c66c917fac" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;d0ca21b8e9c06f5c8f9ca3c66c917fac&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;d0ca21b8e9c06f5c8f9ca3c66c917fac&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;d0ca21b8e9c06f5c8f9ca3c66c917fac&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pred0ca21b8e9c06f5c8f9ca3c66c917fac">@startuml

skinparam class {
BackgroundColor PaleGreen
ArrowColor SeaGreen
BorderColor SpringGreen
BackgroundColor&lt;&lt;Foo&gt;&gt; Wheat
BorderColor&lt;&lt;Foo&gt;&gt; Tomato
}
skinparam stereotypeCBackgroundColor YellowGreen
skinparam stereotypeCBackgroundColor&lt;&lt; Foo &gt;&gt; DimGray

class Class01 &lt;&lt;Foo&gt;&gt;
class Class03 &lt;&lt;Foo&gt;&gt;
Class01 &#34;1&#34; *-- &#34;many&#34; Class02 : contains

Class03 o-- Class04 : aggregation

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="241" height="198" class="scale" src="../imgw/img-d0ca21b8e9c06f5c8f9ca3c66c917fac.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="cfe920390b501516"></a></p><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#31"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#31"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#31"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Color gradient</h2><p></p> You can declare individual colors for classes, notes etc using the # notation. <p></p> You can use standard color names or RGB codes in various notations, see <a href="color.html">Colors</a>. <p></p> You can also use color gradient for background colors, with the following syntax: two colors names separated either by: <ul><li><code class="cod">|</code>,</li><li><code class="cod">/</code>,</li><li><code class="cod">\</code>, or </li><li><code class="cod">-</code></li></ul> depending on the direction of the gradient. <p></p> For example: <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg423df2014a59b6c725204535facb7cf1" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img423df2014a59b6c725204535facb7cf1" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;423df2014a59b6c725204535facb7cf1&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;423df2014a59b6c725204535facb7cf1&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;423df2014a59b6c725204535facb7cf1&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre423df2014a59b6c725204535facb7cf1">@startuml

skinparam backgroundcolor AntiqueWhite/Gold
skinparam classBackgroundColor Wheat|CornflowerBlue

class Foo #red-green
note left of Foo #blue\9932CC
  this is my
  note on this class
end note

package example #GreenYellow/LightGoldenRodYellow {
  class Dummy
}

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="359" height="112" class="scale" src="../imgw/img-423df2014a59b6c725204535facb7cf1.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="c08f8d9927fcb626"></a></p><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-198"></span><!-- ezoic_pub_ad_placeholder-198-incontent_15-234x60-198-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-198-incontent_15-468x60-198-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-198-incontent_15-728x90-198-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-198-incontent_15-970x90-198-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#32"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#32"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#32"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Help on layout</h2><p></p><p></p> Sometimes, the default layout is not perfect... <p></p> You can use <code class="cod">together</code> keyword to group some classes together : the layout engine will try to group them (as if they were in the same package). <p></p> You can also use <code class="cod">hidden</code> links to force the layout. <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg10f6027942c3aff56469c142c2c296d8" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img10f6027942c3aff56469c142c2c296d8" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;10f6027942c3aff56469c142c2c296d8&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;10f6027942c3aff56469c142c2c296d8&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;10f6027942c3aff56469c142c2c296d8&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre10f6027942c3aff56469c142c2c296d8">@startuml

class Bar1
class Bar2
together {
  class Together1
  class Together2
  class Together3
}
Together1 - Together2
Together2 - Together3
Together2 -[hidden]--&gt; Bar1
Bar1 -[hidden]&gt; Bar2


@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="377" height="230" class="scale" src="../imgw/img-10f6027942c3aff56469c142c2c296d8.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p></p><p></p><a style="position:relative;top:-38px;" name="fc6a662f75b53104"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#33"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#33"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#33"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>대용량 파일 분할하기</h2><p></p> Sometimes, you will get some very large image files. <p></p> You can use the <code class="cod">page (hpages)x(vpages)</code> command to split the generated image into several files : <p></p><code class="cod">hpages</code> is a number that indicated the number of horizontal pages, and <code class="cod">vpages</code> is a number that indicated the number of vertical pages. <p></p> You can also use some specific skinparam settings to put borders on splitted pages (see example). <p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg1159fb9c4b34e69b9d160fa18a5b8ab9" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img1159fb9c4b34e69b9d160fa18a5b8ab9" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;1159fb9c4b34e69b9d160fa18a5b8ab9&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;1159fb9c4b34e69b9d160fa18a5b8ab9&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;1159fb9c4b34e69b9d160fa18a5b8ab9&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre1159fb9c4b34e69b9d160fa18a5b8ab9">@startuml
&#39; Split into 4 pages
page 2x2
skinparam pageMargin 10
skinparam pageExternalColor gray
skinparam pageBorderColor black

class BaseClass

namespace net.dummy #DDDDDD {
    .BaseClass &lt;|-- Person
    Meeting o-- Person

    .BaseClass &lt;|- Meeting

}

namespace net.foo {
  net.dummy.Person  &lt;|- Person
  .BaseClass &lt;|-- Person

  net.dummy.Meeting o-- Person
}

BaseClass &lt;|-- net.unused.Person
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="441" height="356" class="scale" src="../imgw/img-1159fb9c4b34e69b9d160fa18a5b8ab9.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><a style="position:relative;top:-38px;" name="6e0d446ea2c5bf82"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-199"></span><!-- ezoic_pub_ad_placeholder-199-incontent_16-234x60-199-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-199-incontent_16-468x60-199-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-199-incontent_16-728x90-199-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-199-incontent_16-970x90-199-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#34"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#34"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#34"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Extends and implements</h2><p></p> It is also possible to use <code class="cod">extends</code> and <code class="cod">implements</code> keywords. <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgc67ae96bf8764499b822639d3feae97e" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgc67ae96bf8764499b822639d3feae97e" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;c67ae96bf8764499b822639d3feae97e&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;c67ae96bf8764499b822639d3feae97e&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;c67ae96bf8764499b822639d3feae97e&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prec67ae96bf8764499b822639d3feae97e">@startuml
class ArrayList implements List
class ArrayList extends AbstractList
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="208" height="169" class="scale" src="../imgw/img-c67ae96bf8764499b822639d3feae97e.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="4ffca7d13182195f"></a></p><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#35"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#35"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#35"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Bracketed relations (linking or arrow) style </h2><p></p><h3>Line style</h3> It&#39;s also possible to have explicitly <code class="cod">bold</code>, <code class="cod">dashed</code>, <code class="cod">dotted</code>, <code class="cod">hidden</code> or <code class="cod">plain</code> relation, links or arrows:<br/><p></p><ul><li>without label</li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgfa12f3eb625493467dc2d3c2e473259d" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgfa12f3eb625493467dc2d3c2e473259d" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;fa12f3eb625493467dc2d3c2e473259d&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;fa12f3eb625493467dc2d3c2e473259d&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;fa12f3eb625493467dc2d3c2e473259d&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prefa12f3eb625493467dc2d3c2e473259d">@startuml
title Bracketed line style without label
class foo
class bar
bar1 : [bold]  
bar2 : [dashed]
bar3 : [dotted]
bar4 : [hidden]
bar5 : [plain] 

foo --&gt; bar
foo -[bold]-&gt; bar1
foo -[dashed]-&gt; bar2
foo -[dotted]-&gt; bar3
foo -[hidden]-&gt; bar4
foo -[plain]-&gt; bar5
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="554" height="225" class="scale" src="../imgw/img-fa12f3eb625493467dc2d3c2e473259d.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><ul><li>with label</li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg9c6d5f5cdb28efcd33aaad73c278ad9d" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img9c6d5f5cdb28efcd33aaad73c278ad9d" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;9c6d5f5cdb28efcd33aaad73c278ad9d&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;9c6d5f5cdb28efcd33aaad73c278ad9d&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;9c6d5f5cdb28efcd33aaad73c278ad9d&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre9c6d5f5cdb28efcd33aaad73c278ad9d">@startuml
title Bracketed line style with label
class foo
class bar
bar1 : [bold]  
bar2 : [dashed]
bar3 : [dotted]
bar4 : [hidden]
bar5 : [plain] 

foo --&gt; bar          : ∅
foo -[bold]-&gt; bar1   : [bold]
foo -[dashed]-&gt; bar2 : [dashed]
foo -[dotted]-&gt; bar3 : [dotted]
foo -[hidden]-&gt; bar4 : [hidden]
foo -[plain]-&gt; bar5  : [plain]

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="554" height="243" class="scale" src="../imgw/img-9c6d5f5cdb28efcd33aaad73c278ad9d.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Adapted from <a href="https://forum.plantuml.net/4181/how-change-width-line-in-a-relationship-between-two-classes?show=4232#a4232">QA-4181</a>]</em><p></p><h3>Line color</h3><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg9b7894475852c7fafcf84fd867c9ed33" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img9b7894475852c7fafcf84fd867c9ed33" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;9b7894475852c7fafcf84fd867c9ed33&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;9b7894475852c7fafcf84fd867c9ed33&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;9b7894475852c7fafcf84fd867c9ed33&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre9b7894475852c7fafcf84fd867c9ed33">@startuml
title Bracketed line color
class foo
class bar
bar1 : [#red]
bar2 : [#green]
bar3 : [#blue]

foo --&gt; bar
foo -[#red]-&gt; bar1     : [#red]
foo -[#green]-&gt; bar2   : [#green]
foo -[#blue]-&gt; bar3    : [#blue]
&#39;foo -[#blue;#yellow;#green]-&gt; bar4
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="358" height="243" class="scale" src="../imgw/img-9b7894475852c7fafcf84fd867c9ed33.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><h3>Line thickness</h3><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgd5c772d3dbb7d5c88c02e64f1120816f" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgd5c772d3dbb7d5c88c02e64f1120816f" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;d5c772d3dbb7d5c88c02e64f1120816f&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;d5c772d3dbb7d5c88c02e64f1120816f&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;d5c772d3dbb7d5c88c02e64f1120816f&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pred5c772d3dbb7d5c88c02e64f1120816f">@startuml
title Bracketed line thickness
class foo
class bar
bar1 : [thickness=1]
bar2 : [thickness=2]
bar3 : [thickness=4]
bar4 : [thickness=8]
bar5 : [thickness=16]

foo --&gt; bar                 : ∅
foo -[thickness=1]-&gt; bar1   : [1]
foo -[thickness=2]-&gt; bar2   : [2]
foo -[thickness=4]-&gt; bar3   : [4]
foo -[thickness=8]-&gt; bar4   : [8]
foo -[thickness=16]-&gt; bar5  : [16]

@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="724" height="243" class="scale" src="../imgw/img-d5c772d3dbb7d5c88c02e64f1120816f.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/4949">QA-4949</a>]</em><p></p><h3>Mix</h3><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msge5f28120237c27c08909ce55b9581d78" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imge5f28120237c27c08909ce55b9581d78" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;e5f28120237c27c08909ce55b9581d78&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;e5f28120237c27c08909ce55b9581d78&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;e5f28120237c27c08909ce55b9581d78&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pree5f28120237c27c08909ce55b9581d78">@startuml
title Bracketed line style mix
class foo
class bar
bar1 : [#red,thickness=1]
bar2 : [#red,dashed,thickness=2]
bar3 : [#green,dashed,thickness=4]
bar4 : [#blue,dotted,thickness=8]
bar5 : [#blue,plain,thickness=16]

foo --&gt; bar                             : ∅
foo -[#red,thickness=1]-&gt; bar1          : [#red,1]
foo -[#red,dashed,thickness=2]-&gt; bar2   : [#red,dashed,2]
foo -[#green,dashed,thickness=4]-&gt; bar3 : [#green,dashed,4]
foo -[#blue,dotted,thickness=8]-&gt; bar4  : [blue,dotted,8]
foo -[#blue,plain,thickness=16]-&gt; bar5  : [blue,plain,16]
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="1098" height="243" class="scale" src="../imgw/img-e5f28120237c27c08909ce55b9581d78.png"/></div></div></td></tr></tbody></table></p><p><a style="position:relative;top:-38px;" name="8dfb3b05fc895d2b"></a></p><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-600"></span><!-- ezoic_pub_ad_placeholder-600-incontent_17-234x60-600-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-600-incontent_17-468x60-600-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-600-incontent_17-728x90-600-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-600-incontent_17-970x90-600-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#36"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#36"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#36"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Change relation (linking or arrow) color and style (inline style)</h2><p></p> You can change the <a href="color.html">color</a> or style of individual relation or arrows using the inline following notation: <p></p><ul><li><code class="cod">#color;line.[bold|dashed|dotted];text:color</code></li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msga1df3b90977b23616988498682dacf6c" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imga1df3b90977b23616988498682dacf6c" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;a1df3b90977b23616988498682dacf6c&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;a1df3b90977b23616988498682dacf6c&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;a1df3b90977b23616988498682dacf6c&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="prea1df3b90977b23616988498682dacf6c">@startuml
class foo
foo --&gt; bar : normal
foo --&gt; bar1 #line:red;line.bold;text:red  : red bold
foo --&gt; bar2 #green;line.dashed;text:green : green dashed
foo --&gt; bar3 #blue;line.dotted;text:blue   : blue dotted
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="374" height="187" class="scale" src="../imgw/img-a1df3b90977b23616988498682dacf6c.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[See similar feature on <a href="deployment-diagram.html#0b2e57c3d4eafdda">deployment</a>]</em><a style="position:relative;top:-38px;" name="fab0ecfcfd0af288"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#37"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#37"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#37"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Change class color and style (inline style)</h2><p></p> You can change the <a href="color.html">color</a> or style of individual class using the two following notations: <p></p><ul><li><code class="cod">#color ##[style]color</code></li></ul><p></p> With background color first (<code class="cod">#color</code>), then line style and line color (<code class="cod">##[style]color</code> ) <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgda9a739a7eed7a7ea90d39bb5230acef" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgda9a739a7eed7a7ea90d39bb5230acef" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;da9a739a7eed7a7ea90d39bb5230acef&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;da9a739a7eed7a7ea90d39bb5230acef&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;da9a739a7eed7a7ea90d39bb5230acef&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preda9a739a7eed7a7ea90d39bb5230acef">@startuml
abstract   abstract
annotation annotation #pink ##[bold]red
class      class      #palegreen ##[dashed]green
interface  interface  #aliceblue ##[dotted]blue
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="230" height="169" class="scale" src="../imgw/img-da9a739a7eed7a7ea90d39bb5230acef.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/1487">QA-1487</a>]</em><p></p><ul><li><code class="cod">#[color|back:color];header:color;line:color;line.[bold|dashed|dotted];text:color</code></li></ul><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg5653ba2dfeab749bed4551ddc63f647c" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img5653ba2dfeab749bed4551ddc63f647c" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;5653ba2dfeab749bed4551ddc63f647c&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;5653ba2dfeab749bed4551ddc63f647c&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;5653ba2dfeab749bed4551ddc63f647c&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre5653ba2dfeab749bed4551ddc63f647c">@startuml
abstract   abstract
annotation annotation #pink;line:red;line.bold;text:red
class      class      #palegreen;line:green;line.dashed;text:green
interface  interface  #aliceblue;line:blue;line.dotted;text:blue
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="230" height="169" class="scale" src="../imgw/img-5653ba2dfeab749bed4551ddc63f647c.png"/></div></div></td></tr></tbody></table></p><p></p><p></p> First original example: <p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg1b873439f6619434758055686f14d6c2" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img1b873439f6619434758055686f14d6c2" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;1b873439f6619434758055686f14d6c2&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;1b873439f6619434758055686f14d6c2&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;1b873439f6619434758055686f14d6c2&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre1b873439f6619434758055686f14d6c2">@startuml
class bar #line:green;back:lightblue
class bar2 #lightblue;line:green

class Foo1 #back:red;line:00FFFF
class FooDashed #line.dashed:blue
class FooDotted #line.dotted:blue
class FooBold #line.bold
class Demo1 #back:lightgreen|yellow;header:blue/red
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="373" height="277" class="scale" src="../imgw/img-1b873439f6619434758055686f14d6c2.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/3770">QA-3770</a>]</em><a style="position:relative;top:-38px;" name="4829cb0f596c9350"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-601"></span><!-- ezoic_pub_ad_placeholder-601-incontent_18-234x60-601-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-601-incontent_18-468x60-601-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-601-incontent_18-728x90-601-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-601-incontent_18-970x90-601-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#38"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#38"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#38"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Arrows from/to class members</h2><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgdd020a6ad9cf58c7c061dda66bf8a963" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgdd020a6ad9cf58c7c061dda66bf8a963" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;dd020a6ad9cf58c7c061dda66bf8a963&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;dd020a6ad9cf58c7c061dda66bf8a963&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;dd020a6ad9cf58c7c061dda66bf8a963&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="predd020a6ad9cf58c7c061dda66bf8a963">@startuml
class Foo {
+ field1
+ field2
}

class Bar {
+ field3
+ field4
}

Foo::field1 --&gt; Bar::field3 : foo
Foo::field2 --&gt; Bar::field4 : bar
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="202" height="265" class="scale" src="../imgw/img-dd020a6ad9cf58c7c061dda66bf8a963.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/3636">QA-3636</a>]</em><p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg934843614ab32f4bc2268652bb599c6b" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img934843614ab32f4bc2268652bb599c6b" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;934843614ab32f4bc2268652bb599c6b&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;934843614ab32f4bc2268652bb599c6b&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;934843614ab32f4bc2268652bb599c6b&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre934843614ab32f4bc2268652bb599c6b">@startuml
left to right direction

class User {
  id : INTEGER
  ..
  other_id : INTEGER
}

class Email {
  id : INTEGER
  ..
  user_id : INTEGER
  address : INTEGER
}

User::id *-- Email::user_id
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="360" height="120" class="scale" src="../imgw/img-934843614ab32f4bc2268652bb599c6b.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/5261">QA-5261</a>]</em><a style="position:relative;top:-38px;" name="49b7759afaffc066"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#39"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#39"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#39"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Grouping inheritance arrow heads</h2><p></p> You can merge all arrow heads using the <code class="cod">skinparam groupInheritance</code>, with a threshold as parameter. <p></p><h3>GroupInheritance 1 (no grouping)</h3><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msge2cca002d49b986caca1d83218c502f6" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imge2cca002d49b986caca1d83218c502f6" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;e2cca002d49b986caca1d83218c502f6&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;e2cca002d49b986caca1d83218c502f6&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;e2cca002d49b986caca1d83218c502f6&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pree2cca002d49b986caca1d83218c502f6">@startuml
skinparam groupInheritance 1

A1 &lt;|-- B1

A2 &lt;|-- B2
A2 &lt;|-- C2

A3 &lt;|-- B3
A3 &lt;|-- C3
A3 &lt;|-- D3

A4 &lt;|-- B4
A4 &lt;|-- C4
A4 &lt;|-- D4
A4 &lt;|-- E4
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="826" height="169" class="scale" src="../imgw/img-e2cca002d49b986caca1d83218c502f6.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><h3>GroupInheritance 2 (grouping from 2)</h3><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg5768232f069c92ba3b5bd6556d07bf8d" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img5768232f069c92ba3b5bd6556d07bf8d" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;5768232f069c92ba3b5bd6556d07bf8d&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;5768232f069c92ba3b5bd6556d07bf8d&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;5768232f069c92ba3b5bd6556d07bf8d&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre5768232f069c92ba3b5bd6556d07bf8d">@startuml
skinparam groupInheritance 2

A1 &lt;|-- B1

A2 &lt;|-- B2
A2 &lt;|-- C2

A3 &lt;|-- B3
A3 &lt;|-- C3
A3 &lt;|-- D3

A4 &lt;|-- B4
A4 &lt;|-- C4
A4 &lt;|-- D4
A4 &lt;|-- E4
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="826" height="189" class="scale" src="../imgw/img-5768232f069c92ba3b5bd6556d07bf8d.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><h3>GroupInheritance 3 (grouping only from 3)</h3><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg72d5ced365ade12444c66254a530c6f2" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img72d5ced365ade12444c66254a530c6f2" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;72d5ced365ade12444c66254a530c6f2&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;72d5ced365ade12444c66254a530c6f2&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;72d5ced365ade12444c66254a530c6f2&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre72d5ced365ade12444c66254a530c6f2">@startuml
skinparam groupInheritance 3

A1 &lt;|-- B1

A2 &lt;|-- B2
A2 &lt;|-- C2

A3 &lt;|-- B3
A3 &lt;|-- C3
A3 &lt;|-- D3

A4 &lt;|-- B4
A4 &lt;|-- C4
A4 &lt;|-- D4
A4 &lt;|-- E4
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="826" height="189" class="scale" src="../imgw/img-72d5ced365ade12444c66254a530c6f2.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><h3>GroupInheritance 4 (grouping only from 4)</h3><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgeda220ee6ba7688d727ff18c073d8b15" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgeda220ee6ba7688d727ff18c073d8b15" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;eda220ee6ba7688d727ff18c073d8b15&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;eda220ee6ba7688d727ff18c073d8b15&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;eda220ee6ba7688d727ff18c073d8b15&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preeda220ee6ba7688d727ff18c073d8b15">@startuml
skinparam groupInheritance 4

A1 &lt;|-- B1

A2 &lt;|-- B2
A2 &lt;|-- C2

A3 &lt;|-- B3
A3 &lt;|-- C3
A3 &lt;|-- D3

A4 &lt;|-- B4
A4 &lt;|-- C4
A4 &lt;|-- D4
A4 &lt;|-- E4
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="826" height="189" class="scale" src="../imgw/img-eda220ee6ba7688d727ff18c073d8b15.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/3193/grouping-inheritance-arrow-ends">QA-3193</a>, and Defect <a href="https://forum.plantuml.net/13532/groupinheritance-bug">QA-13532</a>]</em><a style="position:relative;top:-38px;" name="a3e433077b7a6be8"></a><div style="clear:both;min-height:110px;margin-top:10px;"><div class="pezoic"><span id="ezoic-pub-ad-placeholder-602"></span><!-- ezoic_pub_ad_placeholder-602-incontent_19-234x60-602-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-602-incontent_19-468x60-602-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-602-incontent_19-728x90-602-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-602-incontent_19-970x90-602-nonexxxnonexxxxxxezmaxscaleval100 --></div></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#40"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#40"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#40"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Display JSON Data on Class or Object diagram</h2><p></p><h3>Simple example</h3><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg09ab23cd01ddc8e4332d303870001a86" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img09ab23cd01ddc8e4332d303870001a86" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;09ab23cd01ddc8e4332d303870001a86&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;09ab23cd01ddc8e4332d303870001a86&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;09ab23cd01ddc8e4332d303870001a86&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre09ab23cd01ddc8e4332d303870001a86">@startuml
class Class
object Object
json JSON {
   &#34;fruit&#34;:&#34;Apple&#34;,
   &#34;size&#34;:&#34;Large&#34;,
   &#34;color&#34;: [&#34;Red&#34;, &#34;Green&#34;]
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="181" height="233" class="scale" src="../imgw/img-09ab23cd01ddc8e4332d303870001a86.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://forum.plantuml.net/15481/possible-link-elements-from-two-jsons-with-both-jsons-embeded?show=15567#c15567">QA-15481</a>]</em><p></p> For another example, see on <a href="json.html#jinnkhaa7d65l0fkhfec">JSON page</a>. <a style="position:relative;top:-38px;" name="dbeeec19b401ede6"></a><div style="clear:both;height:50px;"></div><h2 class="chap"><img onclick="window.scrollTo(0,0);" title="Back to top" src="../backtop1.svg" width="20" height="20" class="backtop"/><div class="dropdown"><button class="dropbtn"><img width="16" height="16" src="../edit1.svg"/></button><div class="dropdown-content"><a href="http://alphadoc.plantuml.com/cmp/dokuwiki/ko/class-diagram#41"><img width="20" height="20" src="../dokuwiki.png"/>Edit in Dokuwiki</a><a href="http://alphadoc.plantuml.com/cmp/asciidoc/ko/class-diagram#41"><img width="20" height="20" src="../asciidoc32.png"/>Edit in Asciidoc</a><a href="http://alphadoc.plantuml.com/cmp/markdown/ko/class-diagram#41"><img width="20" height="20" src="../markdown.png"/>Edit in Markdown</a></div></div>Packages and Namespaces Enhancement</h2><p></p><em>[From V1.2023.2+, and V1.2023.5]</em><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg20e3b98a6b7ebb5585ab6ad0eb812c8d" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img20e3b98a6b7ebb5585ab6ad0eb812c8d" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;20e3b98a6b7ebb5585ab6ad0eb812c8d&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;20e3b98a6b7ebb5585ab6ad0eb812c8d&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;20e3b98a6b7ebb5585ab6ad0eb812c8d&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre20e3b98a6b7ebb5585ab6ad0eb812c8d">@startuml
class A.B.C.D.Z {
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="228" height="316" class="scale" src="../imgw/img-20e3b98a6b7ebb5585ab6ad0eb812c8d.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg2625df89c9a9306e7453ac0d6db33a4c" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img2625df89c9a9306e7453ac0d6db33a4c" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;2625df89c9a9306e7453ac0d6db33a4c&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;2625df89c9a9306e7453ac0d6db33a4c&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;2625df89c9a9306e7453ac0d6db33a4c&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre2625df89c9a9306e7453ac0d6db33a4c">@startuml
set separator none
class A.B.C.D.Z {
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="114" height="68" class="scale" src="../imgw/img-2625df89c9a9306e7453ac0d6db33a4c.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msgb87e252c41258d89e58a062bdf8593c3" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="imgb87e252c41258d89e58a062bdf8593c3" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;b87e252c41258d89e58a062bdf8593c3&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;b87e252c41258d89e58a062bdf8593c3&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;b87e252c41258d89e58a062bdf8593c3&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="preb87e252c41258d89e58a062bdf8593c3">@startuml
!pragma useIntermediatePackages false
class A.B.C.D.Z {
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="84" height="112" class="scale" src="../imgw/img-b87e252c41258d89e58a062bdf8593c3.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><p><table class="coptable" valign="top" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top"><div id="msg73a7b2d91d5924d4a646f2070e5ad9c9" class="msg"> 🎉 Copied! </div><img loading="lazy" width="16" height="16" id="img73a7b2d91d5924d4a646f2070e5ad9c9" title="Copy to clipboard" class="cop" src="../clipboard1.svg" onclick="ctc(&#39;73a7b2d91d5924d4a646f2070e5ad9c9&#39;)"/><br/><img loading="lazy" width="16" height="16" title="Edit online" class="cop" src="../edit1.svg" onclick="javascript:ljs(&#39;73a7b2d91d5924d4a646f2070e5ad9c9&#39;)"/></td><td><div class="mytab" onclick="javascript:ljs(&#39;73a7b2d91d5924d4a646f2070e5ad9c9&#39;)"><div class="mycell0"><code onmouseover="az=1" onmouseout="az=0"><pre id="pre73a7b2d91d5924d4a646f2070e5ad9c9">@startuml
set separator none
package A.B.C.D {
  class Z {
  }
}
@enduml
</pre></code></div><div class="mycell"><img loading="lazy" width="84" height="112" class="scale" src="../imgw/img-73a7b2d91d5924d4a646f2070e5ad9c9.png"/></div></div></td></tr></tbody></table></p><p></p><p></p><em>[Ref. <a href="https://github.com/plantuml/plantuml/issues/1352">GH-1352</a>]</em></td><td id="toctd" valign="top" style="max-width:240px;min-width:240px;"><div id="toc"><ul><li><a href="class-diagram.html#e5cec68ef9127fc4">Declaring element</a></li><li><a href="class-diagram.html#9dd2a6eca0c2a0e7">클래스 관계</a></li><li><a href="class-diagram.html#4a705b44651caa59">관계를 나타내기 위한 레이블</a></li><li><a href="class-diagram.html#bd62ba9333d08763">Using non-letters in element names and relation labels</a></li><li><a href="class-diagram.html#090967fbee930909">Adding methods</a></li><li><a href="class-diagram.html#3644720244dd6c6a">메소드, 필드 가시화(Visibility) 정의</a></li><li><a href="class-diagram.html#9fd9d25be2fbb118">Abstract and Static</a></li><li><a href="class-diagram.html#08ca680401eefe3a">Advanced class body</a></li><li><a href="class-diagram.html#59c91a18bcc97bb0">Notes and stereotypes</a></li><li><a href="class-diagram.html#23ca7846dedbb80a">More on notes</a></li><li><a href="class-diagram.html#c909b0b5f0434a64">Note on field (field, attribute, member) or method</a></li><li><a href="class-diagram.html#1d010d898a1fead2">Note on links</a></li><li><a href="class-diagram.html#a339d3559f33ad64">Abstract class and interface</a></li><li><a href="class-diagram.html#6a8ec84e53ede3ae">Hide attributes, methods...</a></li><li><a href="class-diagram.html#20ec7d48c223b142">Hide classes</a></li><li><a href="class-diagram.html#3efa75742a5e3384">Remove classes</a></li><li><a href="class-diagram.html#c0ef243486e3ad85">Hide, Remove or Restore tagged element or wildcard</a></li><li><a href="class-diagram.html#382f74cc79c4edbc">Hide or Remove unlinked class</a></li><li><a href="class-diagram.html#b09695ba6d76313d">Use generics</a></li><li><a href="class-diagram.html#4b62dd14f1d33739">Specific Spot</a></li><li><a href="class-diagram.html#27fe4eb3edbaff8f">Packages</a></li><li><a href="class-diagram.html#a05971470d7fd711">Packages style</a></li><li><a href="class-diagram.html#13d28e8dfc702e34">Namespaces</a></li><li><a href="class-diagram.html#0d2504841361d7da">Automatic namespace creation</a></li><li><a href="class-diagram.html#8b64d7547fa4f699">Lollipop interface</a></li><li><a href="class-diagram.html#5a6e75f1261e3d91">Changing arrows orientation</a></li><li><a href="class-diagram.html#fbbc0504d940020e">Association classes</a></li><li><a href="class-diagram.html#43980c266e3ad62c">Association on same class</a></li><li><a href="class-diagram.html#7aa53dbdfc2137bf">Skinparam</a></li><li><a href="class-diagram.html#89a4c54a52d87715">Skinned Stereotypes</a></li><li><a href="class-diagram.html#cfe920390b501516">Color gradient</a></li><li><a href="class-diagram.html#c08f8d9927fcb626">Help on layout</a></li><li><a href="class-diagram.html#fc6a662f75b53104">대용량 파일 분할하기</a></li><li><a href="class-diagram.html#6e0d446ea2c5bf82">Extends and implements</a></li><li><a href="class-diagram.html#4ffca7d13182195f">Bracketed relations (linking or arrow) style</a></li><li><a href="class-diagram.html#8dfb3b05fc895d2b">Change relation (linking or arrow) color and style (inline style)</a></li><li><a href="class-diagram.html#fab0ecfcfd0af288">Change class color and style (inline style)</a></li><li><a href="class-diagram.html#4829cb0f596c9350">Arrows from/to class members</a></li><li><a href="class-diagram.html#49b7759afaffc066">Grouping inheritance arrow heads</a></li><li><a href="class-diagram.html#a3e433077b7a6be8">Display JSON Data on Class or Object diagram</a></li><li><a href="class-diagram.html#dbeeec19b401ede6">Packages and Namespaces Enhancement</a></li></ul></div></td></tr></tbody></table></p><p></p><span id="ezoic-pub-ad-placeholder-104"></span><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-234x60-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-468x60-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-728x90-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-970x250-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-300x250x3-104-nonexxxnonexxxxxxezmaxscaleval100 --><!-- ezoic_pub_ad_placeholder-104-bottom_of_page-970x90-104-nonexxxnonexxxxxxezmaxscaleval100 --></div><style>.btm{text-align:center}.btm a{text-decoration:none;color:#637282}.btm a:hover{color:#0366d6}</style><div class="btm"><hr/><a href="https://g.ezoic.net/privacy/plantuml.com"><small>Privacy Policy</small></a>      <a href="../direct-sales.html"><small>Advertise</small></a><p></p></div><script>var sc_project=11140436;var sc_invisible=1;var sc_security="f9fe83d7";</script><script async="" src="https://www.statcounter.com/counter/counter.js"></script><!--[selectrongo:done]--><script type="text/javascript">
				var __inScopeForCCPA = false;
		function __uspapi(command, version, callback) {
			var response = null;
			var successs = false;
			if (command === "getUSPData" && version === 1) {
				var uspString = "1"; // Version
				if (__inScopeForCCPA) {
					uspString += "N"; // Has Explicit Notice for Opt Out been provided (ex footer or minor consent modal)
					var result;
					var consentCookie = (result = new RegExp('(?:^|; )ezoccpaconsent=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
					if (consentCookie === "nonconsent") {
						uspString += "Y";
					}
					else {
						uspString += "N";
					}
					uspString += "N" // Is pub a signatory to the IAB Limited Service Provider Agreement (http://www.iabprivacy.com/)
				}
				else {
					uspString += "---";
				}
				response = {
					uspString: uspString,
					version: 1
				};
				success = true;
			}
			return callback(response, success);
		};
		function __receiveUspapiMessage(event) {
			if (event.data.hasOwnProperty('__uspapiCall')) {
				__uspapi('getUSPData', 1, function(uspData, success) {
					event.source.postMessage({
						__uspapiReturn: {
							returnValue: uspData,
							success: success,
							callId: event.data.__uspapiCall.callId
						}
					},
					event.origin);
				});
			}
			return null;
		};
		window.addEventListener("message", __receiveUspapiMessage, false);
</script>
<script>__ez.queue.addFile('/tardisrocinante/vitals.js', '/tardisrocinante/vitals.js?gcb=2&cb=3', false, ['/parsonsmaize/mulvane.js'], true, false, true, false);</script>
<script>var _audins_dom="plantuml_com",_audins_did=173770;__ez.queue.addDelayFunc("audins.js","__ez.script.add", "//go.ezodn.com/detroitchicago/audins.js?cb=195-2");</script><noscript><div style="display:none;"><img src="https://pixel.quantserve.com/pixel/p-31iz6hfFutd16.gif?labels=Domain.plantuml_com,DomainId.173770" border="0" height="1" width="1" alt="Quantcast"/></div></noscript>
<script>__ez.queue.addFile('/beardeddragon/drake.js', '/beardeddragon/drake.js?gcb=2&cb=4', false, [], true, false, true, false);</script>
<script type="text/javascript" style='display:none;'>var __ez_dims = (function() {
		var setCookie = function( name, content, expiry ) {
			return document.cookie = name+'='+content+((expiry)?';expires='+(new Date(Math.floor(new Date().getTime()+expiry*1000)).toUTCString()):'')+';path=/';
		};
		var ffid = 1;
		var oh = window.screen.height;
		var ow = window.screen.width;
		var h = ffid === 1 ? oh : (oh > ow) ? oh : ow;
		var w = ffid === 1 ? ow : (oh > ow) ? ow : oh;
		var uh = window.innerHeight || document.documentElement.clientHeight || document.getElementsByTagName('body')[0].clientHeight;
		var uw = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
		setCookie('ezds', encodeURIComponent('ffid='+ffid+',w='+w+',h='+h), (31536e3*7));
		setCookie('ezohw', encodeURIComponent('w='+uw+',h='+uh), (31536e3*7));
	})();</script>
<script type='text/javascript' style='display:none;' async>__ez.queue.addFile('/parsonsmaize/chanute.js', '/parsonsmaize/chanute.js?a=a&cb=7&dcb=195-2&shcb=34', true, ['/parsonsmaize/mulvane.js'], true, false, false, false);</script>
<script type='text/javascript' style='display:none;' async>__ez.queue.addFile('/porpoiseant/jellyfish.js', '/porpoiseant/jellyfish.js?a=a&cb=10&dcb=195-2&shcb=34', false, [], true, false, false, false);</script></body></html>